From 94f94260ace13688285fc8c62687079b26c18854 Mon Sep 17 00:00:00 2001 From: jaseg Date: Sun, 20 Dec 2020 15:18:02 +0100 Subject: Submodule-cache WIP --- fw/midi-dials/build/usbd_midi_if.lst | 2430 ---------------------------------- 1 file changed, 2430 deletions(-) delete mode 100644 fw/midi-dials/build/usbd_midi_if.lst (limited to 'fw/midi-dials/build/usbd_midi_if.lst') diff --git a/fw/midi-dials/build/usbd_midi_if.lst b/fw/midi-dials/build/usbd_midi_if.lst deleted file mode 100644 index 1fe0750..0000000 --- a/fw/midi-dials/build/usbd_midi_if.lst +++ /dev/null @@ -1,2430 +0,0 @@ -ARM GAS /tmp/ccjHqQBe.s page 1 - - - 1 .cpu cortex-m0 - 2 .eabi_attribute 20, 1 - 3 .eabi_attribute 21, 1 - 4 .eabi_attribute 23, 3 - 5 .eabi_attribute 24, 1 - 6 .eabi_attribute 25, 1 - 7 .eabi_attribute 26, 1 - 8 .eabi_attribute 30, 1 - 9 .eabi_attribute 34, 0 - 10 .eabi_attribute 18, 4 - 11 .file "usbd_midi_if.c" - 12 .text - 13 .Ltext0: - 14 .cfi_sections .debug_frame - 15 .section .text.MIDI_DataTx,"ax",%progbits - 16 .align 1 - 17 .syntax unified - 18 .code 16 - 19 .thumb_func - 20 .fpu softvfp - 22 MIDI_DataTx: - 23 .LFB52: - 24 .file 1 "Src/usbd_midi_if.c" - 1:Src/usbd_midi_if.c **** /** - 2:Src/usbd_midi_if.c **** ****************************************************************************** - 3:Src/usbd_midi_if.c **** * @file : usbd_midi_if.c - 4:Src/usbd_midi_if.c **** * @brief : - 5:Src/usbd_midi_if.c **** ****************************************************************************** - 6:Src/usbd_midi_if.c **** - 7:Src/usbd_midi_if.c **** (CC at)2016 by D.F.Mac. @TripArts Music - 8:Src/usbd_midi_if.c **** - 9:Src/usbd_midi_if.c **** ****************************************************************************** - 10:Src/usbd_midi_if.c **** - 11:Src/usbd_midi_if.c **** Modified by keshikan (www.keshikan.net) 2018 - 12:Src/usbd_midi_if.c **** The license is (CC BY 4.0), and takes over from original usbd_midi_if.h/c. - 13:Src/usbd_midi_if.c **** - 14:Src/usbd_midi_if.c **** See also original source code page. - 15:Src/usbd_midi_if.c **** https://github.com/mimuz/mimuz-tuch/blob/master/STM32/ - 16:Src/usbd_midi_if.c **** - 17:Src/usbd_midi_if.c **** ****************************************************************************** - 18:Src/usbd_midi_if.c **** */ - 19:Src/usbd_midi_if.c **** - 20:Src/usbd_midi_if.c **** /* Includes ------------------------------------------------------------------*/ - 21:Src/usbd_midi_if.c **** #include "usbd_midi_if.h" - 22:Src/usbd_midi_if.c **** #include "stm32f0xx_hal.h" - 23:Src/usbd_midi_if.c **** - 24:Src/usbd_midi_if.c **** - 25:Src/usbd_midi_if.c **** // basic midi rx/tx functions - 26:Src/usbd_midi_if.c **** static uint16_t MIDI_DataRx(uint8_t *msg, uint16_t length); - 27:Src/usbd_midi_if.c **** static uint16_t MIDI_DataTx(uint8_t *msg, uint16_t length); - 28:Src/usbd_midi_if.c **** - 29:Src/usbd_midi_if.c **** // for Cure Series - 30:Src/usbd_midi_if.c **** #define MIDI_BUFFER_SIZ (512)//FIFO buffer byte size for midi message buffer - 31:Src/usbd_midi_if.c **** - 32:Src/usbd_midi_if.c **** RingBufferU8 rbuf_usb_rx[MIDI_OUT_JACK_NUM]; //for input from USB - 33:Src/usbd_midi_if.c **** RingBufferU8 rbuf_jack_rx[MIDI_IN_JACK_NUM]; //for input from MIDI-IN jack - 34:Src/usbd_midi_if.c **** - ARM GAS /tmp/ccjHqQBe.s page 2 - - - 35:Src/usbd_midi_if.c **** //for receiving midi data from jack - 36:Src/usbd_midi_if.c **** MidiAnalysisStatus analyzed_status[MIDI_IN_JACK_NUM]; - 37:Src/usbd_midi_if.c **** MIDIEvent midi_event[MIDI_IN_JACK_NUM]; //received midi data - 38:Src/usbd_midi_if.c **** - 39:Src/usbd_midi_if.c **** uint8_t rx_midi_msg[MIDI_IN_JACK_NUM]; - 40:Src/usbd_midi_if.c **** - 41:Src/usbd_midi_if.c **** - 42:Src/usbd_midi_if.c **** FUNC_STATUS midiInit() - 43:Src/usbd_midi_if.c **** { - 44:Src/usbd_midi_if.c **** uint32_t i,j; - 45:Src/usbd_midi_if.c **** - 46:Src/usbd_midi_if.c **** for(i=0; i> 4; - 167:Src/usbd_midi_if.c **** uint8_t code_idx_num = msg[0 + 4*cnt_msgs] & 0x0F; - 168:Src/usbd_midi_if.c **** - 169:Src/usbd_midi_if.c **** switch (code_idx_num) { - 170:Src/usbd_midi_if.c **** - 171:Src/usbd_midi_if.c **** //not defined - 172:Src/usbd_midi_if.c **** case 0x0: - 173:Src/usbd_midi_if.c **** case 0x1: - 174:Src/usbd_midi_if.c **** midi_size = 0; - 175:Src/usbd_midi_if.c **** break; - 176:Src/usbd_midi_if.c **** - 177:Src/usbd_midi_if.c **** //1byte message - 178:Src/usbd_midi_if.c **** case 0x5: - 179:Src/usbd_midi_if.c **** case 0xF: - 180:Src/usbd_midi_if.c **** midi_size = 1; - 181:Src/usbd_midi_if.c **** break; - 182:Src/usbd_midi_if.c **** - 183:Src/usbd_midi_if.c **** //2byte message - 184:Src/usbd_midi_if.c **** case 0x2: - 185:Src/usbd_midi_if.c **** case 0x6: - 186:Src/usbd_midi_if.c **** case 0xC: - 187:Src/usbd_midi_if.c **** case 0xD: - 188:Src/usbd_midi_if.c **** midi_size = 2; - 189:Src/usbd_midi_if.c **** break; - 190:Src/usbd_midi_if.c **** - 191:Src/usbd_midi_if.c **** //3byte message - 192:Src/usbd_midi_if.c **** case 0x3: - 193:Src/usbd_midi_if.c **** case 0x4: - 194:Src/usbd_midi_if.c **** case 0x7: - 195:Src/usbd_midi_if.c **** case 0x8: - 196:Src/usbd_midi_if.c **** case 0x9: - 197:Src/usbd_midi_if.c **** case 0xA: - 198:Src/usbd_midi_if.c **** case 0xB: - 199:Src/usbd_midi_if.c **** case 0xE: - 200:Src/usbd_midi_if.c **** midi_size = 3; - 201:Src/usbd_midi_if.c **** break; - 202:Src/usbd_midi_if.c **** - 203:Src/usbd_midi_if.c **** default: - 204:Src/usbd_midi_if.c **** midi_size = 0; - 205:Src/usbd_midi_if.c **** break; - ARM GAS /tmp/ccjHqQBe.s page 5 - - - 206:Src/usbd_midi_if.c **** } - 207:Src/usbd_midi_if.c **** - 208:Src/usbd_midi_if.c **** for(cnt = 0;cnt < midi_size;cnt ++){ - 209:Src/usbd_midi_if.c **** u8b = *(msg + 4*cnt_msgs + cnt + 1); - 210:Src/usbd_midi_if.c **** cureRingBufferU8Enqueue(&rbuf_usb_rx[cable_num], &u8b); - 211:Src/usbd_midi_if.c **** } - 212:Src/usbd_midi_if.c **** } - 213:Src/usbd_midi_if.c **** - 214:Src/usbd_midi_if.c **** return 0; - 215:Src/usbd_midi_if.c **** } - 216:Src/usbd_midi_if.c **** - 217:Src/usbd_midi_if.c **** void sendMidiMessage(uint8_t *msg, uint16_t size){ - 218:Src/usbd_midi_if.c **** if(size == 4){ - 219:Src/usbd_midi_if.c **** // APP_Rx_Buffer[0] = msg[0]; - 220:Src/usbd_midi_if.c **** // APP_Rx_Buffer[1] = msg[1]; - 221:Src/usbd_midi_if.c **** // APP_Rx_Buffer[2] = msg[2]; - 222:Src/usbd_midi_if.c **** // APP_Rx_Buffer[3] = msg[3]; - 223:Src/usbd_midi_if.c **** // USBD_MIDI_SendData(&hUsbDeviceFS, APP_Rx_Buffer, size); - 224:Src/usbd_midi_if.c **** MIDI_DataTx(msg, size); - 225:Src/usbd_midi_if.c **** } - 226:Src/usbd_midi_if.c **** } - 227:Src/usbd_midi_if.c **** - 228:Src/usbd_midi_if.c **** static uint16_t MIDI_DataTx(uint8_t *msg, uint16_t length){ - 25 .loc 1 228 0 - 26 .cfi_startproc - 27 @ args = 0, pretend = 0, frame = 0 - 28 @ frame_needed = 0, uses_anonymous_args = 0 - 29 .LVL0: - 30 0000 70B5 push {r4, r5, r6, lr} - 31 .LCFI0: - 32 .cfi_def_cfa_offset 16 - 33 .cfi_offset 4, -16 - 34 .cfi_offset 5, -12 - 35 .cfi_offset 6, -8 - 36 .cfi_offset 14, -4 - 37 .LVL1: - 229:Src/usbd_midi_if.c **** uint32_t i = 0; - 38 .loc 1 229 0 - 39 0002 0022 movs r2, #0 - 40 .LVL2: - 41 .L2: - 230:Src/usbd_midi_if.c **** while (i < length) { - 42 .loc 1 230 0 - 43 0004 9142 cmp r1, r2 - 44 0006 0FD9 bls .L5 - 231:Src/usbd_midi_if.c **** APP_Rx_Buffer[APP_Rx_ptr_in] = *(msg + i); - 45 .loc 1 231 0 - 46 0008 084C ldr r4, .L6 - 47 000a 2368 ldr r3, [r4] - 48 000c 865C ldrb r6, [r0, r2] - 49 000e 084D ldr r5, .L6+4 - 50 0010 EE54 strb r6, [r5, r3] - 232:Src/usbd_midi_if.c **** APP_Rx_ptr_in++; - 51 .loc 1 232 0 - 52 0012 0133 adds r3, r3, #1 - 53 0014 2360 str r3, [r4] - 233:Src/usbd_midi_if.c **** i++; - ARM GAS /tmp/ccjHqQBe.s page 6 - - - 54 .loc 1 233 0 - 55 0016 0132 adds r2, r2, #1 - 56 .LVL3: - 234:Src/usbd_midi_if.c **** if (APP_Rx_ptr_in == APP_RX_DATA_SIZE) { - 57 .loc 1 234 0 - 58 0018 8024 movs r4, #128 - 59 001a 6400 lsls r4, r4, #1 - 60 001c A342 cmp r3, r4 - 61 001e F1D1 bne .L2 - 235:Src/usbd_midi_if.c **** APP_Rx_ptr_in = 0; - 62 .loc 1 235 0 - 63 0020 024B ldr r3, .L6 - 64 0022 0024 movs r4, #0 - 65 0024 1C60 str r4, [r3] - 66 0026 EDE7 b .L2 - 67 .L5: - 236:Src/usbd_midi_if.c **** } - 237:Src/usbd_midi_if.c **** } - 238:Src/usbd_midi_if.c **** return USBD_OK; - 239:Src/usbd_midi_if.c **** } - 68 .loc 1 239 0 - 69 0028 0020 movs r0, #0 - 70 .LVL4: - 71 @ sp needed - 72 002a 70BD pop {r4, r5, r6, pc} - 73 .L7: - 74 .align 2 - 75 .L6: - 76 002c 00000000 .word APP_Rx_ptr_in - 77 0030 00000000 .word APP_Rx_Buffer - 78 .cfi_endproc - 79 .LFE52: - 81 .section .text.MIDI_DataRx,"ax",%progbits - 82 .align 1 - 83 .syntax unified - 84 .code 16 - 85 .thumb_func - 86 .fpu softvfp - 88 MIDI_DataRx: - 89 .LFB50: - 152:Src/usbd_midi_if.c **** uint16_t cnt; - 90 .loc 1 152 0 - 91 .cfi_startproc - 92 @ args = 0, pretend = 0, frame = 16 - 93 @ frame_needed = 0, uses_anonymous_args = 0 - 94 .LVL5: - 95 0000 F0B5 push {r4, r5, r6, r7, lr} - 96 .LCFI1: - 97 .cfi_def_cfa_offset 20 - 98 .cfi_offset 4, -20 - 99 .cfi_offset 5, -16 - 100 .cfi_offset 6, -12 - 101 .cfi_offset 7, -8 - 102 .cfi_offset 14, -4 - 103 0002 DE46 mov lr, fp - 104 0004 4746 mov r7, r8 - 105 0006 80B5 push {r7, lr} - ARM GAS /tmp/ccjHqQBe.s page 7 - - - 106 .LCFI2: - 107 .cfi_def_cfa_offset 28 - 108 .cfi_offset 8, -28 - 109 .cfi_offset 11, -24 - 110 0008 85B0 sub sp, sp, #20 - 111 .LCFI3: - 112 .cfi_def_cfa_offset 48 - 113 000a 0600 movs r6, r0 - 154:Src/usbd_midi_if.c **** uint16_t chk = length % 4; - 114 .loc 1 154 0 - 115 000c 8B08 lsrs r3, r1, #2 - 116 000e 9B46 mov fp, r3 - 117 .LVL6: - 155:Src/usbd_midi_if.c **** uint8_t u8b; - 118 .loc 1 155 0 - 119 0010 0327 movs r7, #3 - 120 0012 0F40 ands r7, r1 - 121 0014 0197 str r7, [sp, #4] - 122 .LVL7: - 159:Src/usbd_midi_if.c **** { - 123 .loc 1 159 0 - 124 0016 27D0 beq .L10 - 125 .LVL8: - 126 .L9: - 215:Src/usbd_midi_if.c **** - 127 .loc 1 215 0 - 128 0018 0020 movs r0, #0 - 129 001a 05B0 add sp, sp, #20 - 130 @ sp needed - 131 .LVL9: - 132 .LVL10: - 133 001c 0CBC pop {r2, r3} - 134 001e 9046 mov r8, r2 - 135 0020 9B46 mov fp, r3 - 136 0022 F0BD pop {r4, r5, r6, r7, pc} - 137 .LVL11: - 138 .L11: - 139 .LBB2: - 140 .LBB3: - 174:Src/usbd_midi_if.c **** break; - 141 .loc 1 174 0 - 142 0024 0023 movs r3, #0 - 143 0026 0093 str r3, [sp] - 144 .L15: - 145 .LVL12: - 208:Src/usbd_midi_if.c **** u8b = *(msg + 4*cnt_msgs + cnt + 1); - 146 .loc 1 208 0 - 147 0028 019C ldr r4, [sp, #4] - 148 002a 18E0 b .L16 - 149 .LVL13: - 150 .L12: - 188:Src/usbd_midi_if.c **** break; - 151 .loc 1 188 0 - 152 002c 0223 movs r3, #2 - 153 002e 0093 str r3, [sp] - 189:Src/usbd_midi_if.c **** - 154 .loc 1 189 0 - ARM GAS /tmp/ccjHqQBe.s page 8 - - - 155 0030 FAE7 b .L15 - 156 .LVL14: - 157 .L14: - 200:Src/usbd_midi_if.c **** break; - 158 .loc 1 200 0 - 159 0032 0323 movs r3, #3 - 160 0034 0093 str r3, [sp] - 201:Src/usbd_midi_if.c **** - 161 .loc 1 201 0 - 162 0036 F7E7 b .L15 - 163 .LVL15: - 164 .L19: - 180:Src/usbd_midi_if.c **** break; - 165 .loc 1 180 0 - 166 0038 0123 movs r3, #1 - 167 003a 0093 str r3, [sp] - 168 003c F4E7 b .L15 - 169 .LVL16: - 170 .L17: - 209:Src/usbd_midi_if.c **** cureRingBufferU8Enqueue(&rbuf_usb_rx[cable_num], &u8b); - 171 .loc 1 209 0 discriminator 3 - 172 003e 4346 mov r3, r8 - 173 0040 E318 adds r3, r4, r3 - 174 0042 0133 adds r3, r3, #1 - 175 0044 F35C ldrb r3, [r6, r3] - 176 0046 02AA add r2, sp, #8 - 177 0048 D11D adds r1, r2, #7 - 178 004a 0B70 strb r3, [r1] - 210:Src/usbd_midi_if.c **** } - 179 .loc 1 210 0 discriminator 3 - 180 004c 6B00 lsls r3, r5, #1 - 181 004e 5B19 adds r3, r3, r5 - 182 0050 9800 lsls r0, r3, #2 - 183 0052 0B4B ldr r3, .L20 - 184 0054 C018 adds r0, r0, r3 - 185 0056 FFF7FEFF bl cureRingBufferU8Enqueue - 186 .LVL17: - 208:Src/usbd_midi_if.c **** u8b = *(msg + 4*cnt_msgs + cnt + 1); - 187 .loc 1 208 0 discriminator 3 - 188 005a 0134 adds r4, r4, #1 - 189 .LVL18: - 190 005c A4B2 uxth r4, r4 - 191 .LVL19: - 192 .L16: - 208:Src/usbd_midi_if.c **** u8b = *(msg + 4*cnt_msgs + cnt + 1); - 193 .loc 1 208 0 is_stmt 0 discriminator 1 - 194 005e 6B46 mov r3, sp - 195 0060 1B88 ldrh r3, [r3] - 196 0062 A342 cmp r3, r4 - 197 0064 EBD8 bhi .L17 - 198 .LBE3: - 164:Src/usbd_midi_if.c **** - 199 .loc 1 164 0 is_stmt 1 discriminator 2 - 200 0066 0137 adds r7, r7, #1 - 201 .LVL20: - 202 .L10: - 164:Src/usbd_midi_if.c **** - ARM GAS /tmp/ccjHqQBe.s page 9 - - - 203 .loc 1 164 0 is_stmt 0 discriminator 1 - 204 0068 BB45 cmp fp, r7 - 205 006a D5D9 bls .L9 - 206 .LBB4: - 166:Src/usbd_midi_if.c **** uint8_t code_idx_num = msg[0 + 4*cnt_msgs] & 0x0F; - 207 .loc 1 166 0 is_stmt 1 - 208 006c BB00 lsls r3, r7, #2 - 209 006e 9846 mov r8, r3 - 210 0070 F25C ldrb r2, [r6, r3] - 211 0072 1509 lsrs r5, r2, #4 - 212 .LVL21: - 167:Src/usbd_midi_if.c **** - 213 .loc 1 167 0 - 214 0074 0F23 movs r3, #15 - 215 0076 1340 ands r3, r2 - 216 .LVL22: - 169:Src/usbd_midi_if.c **** - 217 .loc 1 169 0 - 218 0078 9B00 lsls r3, r3, #2 - 219 .LVL23: - 220 007a 024A ldr r2, .L20+4 - 221 .LVL24: - 222 007c D358 ldr r3, [r2, r3] - 223 007e 9F46 mov pc, r3 - 224 .section .rodata.MIDI_DataRx,"a",%progbits - 225 .align 2 - 226 .L13: - 227 0000 24000000 .word .L11 - 228 0004 24000000 .word .L11 - 229 0008 2C000000 .word .L12 - 230 000c 32000000 .word .L14 - 231 0010 32000000 .word .L14 - 232 0014 38000000 .word .L19 - 233 0018 2C000000 .word .L12 - 234 001c 32000000 .word .L14 - 235 0020 32000000 .word .L14 - 236 0024 32000000 .word .L14 - 237 0028 32000000 .word .L14 - 238 002c 32000000 .word .L14 - 239 0030 2C000000 .word .L12 - 240 0034 2C000000 .word .L12 - 241 0038 32000000 .word .L14 - 242 003c 38000000 .word .L19 - 243 .section .text.MIDI_DataRx - 244 .L21: - 245 .align 2 - 246 .L20: - 247 0080 00000000 .word rbuf_usb_rx - 248 0084 00000000 .word .L13 - 249 .LBE4: - 250 .LBE2: - 251 .cfi_endproc - 252 .LFE50: - 254 .section .text.midiInit,"ax",%progbits - 255 .align 1 - 256 .global midiInit - 257 .syntax unified - ARM GAS /tmp/ccjHqQBe.s page 10 - - - 258 .code 16 - 259 .thumb_func - 260 .fpu softvfp - 262 midiInit: - 263 .LFB43: - 43:Src/usbd_midi_if.c **** uint32_t i,j; - 264 .loc 1 43 0 - 265 .cfi_startproc - 266 @ args = 0, pretend = 0, frame = 0 - 267 @ frame_needed = 0, uses_anonymous_args = 0 - 268 0000 10B5 push {r4, lr} - 269 .LCFI4: - 270 .cfi_def_cfa_offset 8 - 271 .cfi_offset 4, -8 - 272 .cfi_offset 14, -4 - 273 .LVL25: - 46:Src/usbd_midi_if.c **** if(BUFFER_SUCCESS != cureRingBufferU8Init(&rbuf_usb_rx[i], MIDI_BUFFER_SIZ)) - 274 .loc 1 46 0 - 275 0002 0024 movs r4, #0 - 276 .LVL26: - 277 .L23: - 46:Src/usbd_midi_if.c **** if(BUFFER_SUCCESS != cureRingBufferU8Init(&rbuf_usb_rx[i], MIDI_BUFFER_SIZ)) - 278 .loc 1 46 0 is_stmt 0 discriminator 1 - 279 0004 002C cmp r4, #0 - 280 0006 07D0 beq .L25 - 53:Src/usbd_midi_if.c **** if(BUFFER_SUCCESS != cureRingBufferU8Init(&rbuf_jack_rx[i], MIDI_BUFFER_SIZ)) - 281 .loc 1 53 0 is_stmt 1 - 282 0008 0024 movs r4, #0 - 283 .LVL27: - 284 .L26: - 53:Src/usbd_midi_if.c **** if(BUFFER_SUCCESS != cureRingBufferU8Init(&rbuf_jack_rx[i], MIDI_BUFFER_SIZ)) - 285 .loc 1 53 0 is_stmt 0 discriminator 1 - 286 000a 002C cmp r4, #0 - 287 000c 11D0 beq .L27 - 61:Src/usbd_midi_if.c **** - 288 .loc 1 61 0 is_stmt 1 - 289 000e 0020 movs r0, #0 - 290 .LVL28: - 291 .L28: - 61:Src/usbd_midi_if.c **** - 292 .loc 1 61 0 is_stmt 0 discriminator 1 - 293 0010 0028 cmp r0, #0 - 294 0012 1BD0 beq .L31 - 72:Src/usbd_midi_if.c **** } - 295 .loc 1 72 0 is_stmt 1 - 296 0014 0120 movs r0, #1 - 297 .LVL29: - 298 .L24: - 73:Src/usbd_midi_if.c **** - 299 .loc 1 73 0 - 300 @ sp needed - 301 0016 10BD pop {r4, pc} - 302 .LVL30: - 303 .L25: - 47:Src/usbd_midi_if.c **** { - 304 .loc 1 47 0 - 305 0018 8021 movs r1, #128 - ARM GAS /tmp/ccjHqQBe.s page 11 - - - 306 001a 6300 lsls r3, r4, #1 - 307 001c 1B19 adds r3, r3, r4 - 308 001e 9800 lsls r0, r3, #2 - 309 0020 194B ldr r3, .L34 - 310 0022 C018 adds r0, r0, r3 - 311 0024 8900 lsls r1, r1, #2 - 312 0026 FFF7FEFF bl cureRingBufferU8Init - 313 .LVL31: - 314 002a 0128 cmp r0, #1 - 315 002c 27D1 bne .L32 - 46:Src/usbd_midi_if.c **** if(BUFFER_SUCCESS != cureRingBufferU8Init(&rbuf_usb_rx[i], MIDI_BUFFER_SIZ)) - 316 .loc 1 46 0 discriminator 2 - 317 002e 0134 adds r4, r4, #1 - 318 .LVL32: - 319 0030 E8E7 b .L23 - 320 .L27: - 54:Src/usbd_midi_if.c **** { - 321 .loc 1 54 0 - 322 0032 8021 movs r1, #128 - 323 0034 6300 lsls r3, r4, #1 - 324 0036 1B19 adds r3, r3, r4 - 325 0038 9800 lsls r0, r3, #2 - 326 003a 144B ldr r3, .L34+4 - 327 003c C018 adds r0, r0, r3 - 328 003e 8900 lsls r1, r1, #2 - 329 0040 FFF7FEFF bl cureRingBufferU8Init - 330 .LVL33: - 331 0044 0128 cmp r0, #1 - 332 0046 1CD1 bne .L33 - 53:Src/usbd_midi_if.c **** if(BUFFER_SUCCESS != cureRingBufferU8Init(&rbuf_jack_rx[i], MIDI_BUFFER_SIZ)) - 333 .loc 1 53 0 discriminator 2 - 334 0048 0134 adds r4, r4, #1 - 335 .LVL34: - 336 004a DEE7 b .L26 - 337 .LVL35: - 338 .L31: - 63:Src/usbd_midi_if.c **** analyzed_status[i].data_idx = 0; - 339 .loc 1 63 0 - 340 004c 0022 movs r2, #0 - 341 004e 104B ldr r3, .L34+8 - 342 0050 1A54 strb r2, [r3, r0] - 64:Src/usbd_midi_if.c **** midi_event[i].length = 0; - 343 .loc 1 64 0 - 344 0052 8100 lsls r1, r0, #2 - 345 0054 0F4B ldr r3, .L34+12 - 346 0056 5B18 adds r3, r3, r1 - 347 0058 DA70 strb r2, [r3, #3] - 65:Src/usbd_midi_if.c **** - 348 .loc 1 65 0 - 349 005a 8301 lsls r3, r0, #6 - 350 005c 1B18 adds r3, r3, r0 - 351 005e 0E49 ldr r1, .L34+16 - 352 0060 5A54 strb r2, [r3, r1] - 353 .LVL36: - 67:Src/usbd_midi_if.c **** midi_event[i].midi_byte[j] = 0x00; - 354 .loc 1 67 0 - 355 0062 0200 movs r2, r0 - ARM GAS /tmp/ccjHqQBe.s page 12 - - - 356 0064 07E0 b .L29 - 357 .LVL37: - 358 .L30: - 68:Src/usbd_midi_if.c **** } - 359 .loc 1 68 0 discriminator 3 - 360 0066 8101 lsls r1, r0, #6 - 361 0068 0918 adds r1, r1, r0 - 362 006a 0B4B ldr r3, .L34+16 - 363 006c 5B18 adds r3, r3, r1 - 364 006e 9B18 adds r3, r3, r2 - 365 0070 0021 movs r1, #0 - 366 0072 5970 strb r1, [r3, #1] - 67:Src/usbd_midi_if.c **** midi_event[i].midi_byte[j] = 0x00; - 367 .loc 1 67 0 discriminator 3 - 368 0074 0132 adds r2, r2, #1 - 369 .LVL38: - 370 .L29: - 67:Src/usbd_midi_if.c **** midi_event[i].midi_byte[j] = 0x00; - 371 .loc 1 67 0 is_stmt 0 discriminator 1 - 372 0076 3F2A cmp r2, #63 - 373 0078 F5D9 bls .L30 - 61:Src/usbd_midi_if.c **** - 374 .loc 1 61 0 is_stmt 1 discriminator 2 - 375 007a 0130 adds r0, r0, #1 - 376 .LVL39: - 377 007c C8E7 b .L28 - 378 .LVL40: - 379 .L32: - 49:Src/usbd_midi_if.c **** } - 380 .loc 1 49 0 - 381 007e 0020 movs r0, #0 - 382 0080 C9E7 b .L24 - 383 .L33: - 56:Src/usbd_midi_if.c **** } - 384 .loc 1 56 0 - 385 0082 0020 movs r0, #0 - 386 0084 C7E7 b .L24 - 387 .L35: - 388 0086 C046 .align 2 - 389 .L34: - 390 0088 00000000 .word rbuf_usb_rx - 391 008c 00000000 .word rbuf_jack_rx - 392 0090 00000000 .word rx_midi_msg - 393 0094 00000000 .word analyzed_status - 394 0098 00000000 .word midi_event - 395 .cfi_endproc - 396 .LFE43: - 398 .section .text.midiGetFromUsbRx,"ax",%progbits - 399 .align 1 - 400 .global midiGetFromUsbRx - 401 .syntax unified - 402 .code 16 - 403 .thumb_func - 404 .fpu softvfp - 406 midiGetFromUsbRx: - 407 .LFB44: - 76:Src/usbd_midi_if.c **** if(BUFFER_SUCCESS != cureRingBufferU8Dequeue(&rbuf_usb_rx[cable_num], dat)) - ARM GAS /tmp/ccjHqQBe.s page 13 - - - 408 .loc 1 76 0 - 409 .cfi_startproc - 410 @ args = 0, pretend = 0, frame = 0 - 411 @ frame_needed = 0, uses_anonymous_args = 0 - 412 .LVL41: - 413 0000 10B5 push {r4, lr} - 414 .LCFI5: - 415 .cfi_def_cfa_offset 8 - 416 .cfi_offset 4, -8 - 417 .cfi_offset 14, -4 - 77:Src/usbd_midi_if.c **** { - 418 .loc 1 77 0 - 419 0002 4300 lsls r3, r0, #1 - 420 0004 1818 adds r0, r3, r0 - 421 .LVL42: - 422 0006 8300 lsls r3, r0, #2 - 423 0008 0448 ldr r0, .L39 - 424 000a 1818 adds r0, r3, r0 - 425 000c FFF7FEFF bl cureRingBufferU8Dequeue - 426 .LVL43: - 427 0010 0128 cmp r0, #1 - 428 0012 01D0 beq .L38 - 79:Src/usbd_midi_if.c **** } - 429 .loc 1 79 0 - 430 0014 0020 movs r0, #0 - 431 .L37: - 83:Src/usbd_midi_if.c **** - 432 .loc 1 83 0 - 433 @ sp needed - 434 0016 10BD pop {r4, pc} - 435 .L38: - 82:Src/usbd_midi_if.c **** } - 436 .loc 1 82 0 - 437 0018 0120 movs r0, #1 - 438 001a FCE7 b .L37 - 439 .L40: - 440 .align 2 - 441 .L39: - 442 001c 00000000 .word rbuf_usb_rx - 443 .cfi_endproc - 444 .LFE44: - 446 .section .text.midiGetFromJackRx,"ax",%progbits - 447 .align 1 - 448 .global midiGetFromJackRx - 449 .syntax unified - 450 .code 16 - 451 .thumb_func - 452 .fpu softvfp - 454 midiGetFromJackRx: - 455 .LFB45: - 86:Src/usbd_midi_if.c **** if(BUFFER_SUCCESS != cureRingBufferU8Dequeue(&rbuf_jack_rx[cable_num], &rx_midi_msg[cable_num])) - 456 .loc 1 86 0 - 457 .cfi_startproc - 458 @ args = 0, pretend = 0, frame = 0 - 459 @ frame_needed = 0, uses_anonymous_args = 0 - 460 .LVL44: - 461 0000 10B5 push {r4, lr} - ARM GAS /tmp/ccjHqQBe.s page 14 - - - 462 .LCFI6: - 463 .cfi_def_cfa_offset 8 - 464 .cfi_offset 4, -8 - 465 .cfi_offset 14, -4 - 87:Src/usbd_midi_if.c **** { - 466 .loc 1 87 0 - 467 0002 0749 ldr r1, .L44 - 468 0004 4118 adds r1, r0, r1 - 469 0006 4300 lsls r3, r0, #1 - 470 0008 1818 adds r0, r3, r0 - 471 .LVL45: - 472 000a 8300 lsls r3, r0, #2 - 473 000c 0548 ldr r0, .L44+4 - 474 000e 1818 adds r0, r3, r0 - 475 0010 FFF7FEFF bl cureRingBufferU8Dequeue - 476 .LVL46: - 477 0014 0128 cmp r0, #1 - 478 0016 01D0 beq .L43 - 89:Src/usbd_midi_if.c **** } - 479 .loc 1 89 0 - 480 0018 0020 movs r0, #0 - 481 .L42: - 93:Src/usbd_midi_if.c **** - 482 .loc 1 93 0 - 483 @ sp needed - 484 001a 10BD pop {r4, pc} - 485 .L43: - 92:Src/usbd_midi_if.c **** } - 486 .loc 1 92 0 - 487 001c 0120 movs r0, #1 - 488 001e FCE7 b .L42 - 489 .L45: - 490 .align 2 - 491 .L44: - 492 0020 00000000 .word rx_midi_msg - 493 0024 00000000 .word rbuf_jack_rx - 494 .cfi_endproc - 495 .LFE45: - 497 .section .text.midiSetFromJackRx,"ax",%progbits - 498 .align 1 - 499 .global midiSetFromJackRx - 500 .syntax unified - 501 .code 16 - 502 .thumb_func - 503 .fpu softvfp - 505 midiSetFromJackRx: - 506 .LFB46: - 96:Src/usbd_midi_if.c **** if(BUFFER_SUCCESS != cureRingBufferU8Enqueue(&rbuf_jack_rx[cable_num], dat)) - 507 .loc 1 96 0 - 508 .cfi_startproc - 509 @ args = 0, pretend = 0, frame = 0 - 510 @ frame_needed = 0, uses_anonymous_args = 0 - 511 .LVL47: - 512 0000 10B5 push {r4, lr} - 513 .LCFI7: - 514 .cfi_def_cfa_offset 8 - 515 .cfi_offset 4, -8 - ARM GAS /tmp/ccjHqQBe.s page 15 - - - 516 .cfi_offset 14, -4 - 97:Src/usbd_midi_if.c **** { - 517 .loc 1 97 0 - 518 0002 4300 lsls r3, r0, #1 - 519 0004 1818 adds r0, r3, r0 - 520 .LVL48: - 521 0006 8300 lsls r3, r0, #2 - 522 0008 0448 ldr r0, .L49 - 523 000a 1818 adds r0, r3, r0 - 524 000c FFF7FEFF bl cureRingBufferU8Enqueue - 525 .LVL49: - 526 0010 0128 cmp r0, #1 - 527 0012 01D0 beq .L48 - 99:Src/usbd_midi_if.c **** } - 528 .loc 1 99 0 - 529 0014 0020 movs r0, #0 - 530 .L47: - 103:Src/usbd_midi_if.c **** - 531 .loc 1 103 0 - 532 @ sp needed - 533 0016 10BD pop {r4, pc} - 534 .L48: - 102:Src/usbd_midi_if.c **** } - 535 .loc 1 102 0 - 536 0018 0120 movs r0, #1 - 537 001a FCE7 b .L47 - 538 .L50: - 539 .align 2 - 540 .L49: - 541 001c 00000000 .word rbuf_jack_rx - 542 .cfi_endproc - 543 .LFE46: - 545 .section .text.isUsbRxBufEmpty,"ax",%progbits - 546 .align 1 - 547 .global isUsbRxBufEmpty - 548 .syntax unified - 549 .code 16 - 550 .thumb_func - 551 .fpu softvfp - 553 isUsbRxBufEmpty: - 554 .LFB47: - 107:Src/usbd_midi_if.c **** if( 0 != _cureRingBufferU8GetUsedSize(&rbuf_usb_rx[cable_num]) ){ - 555 .loc 1 107 0 - 556 .cfi_startproc - 557 @ args = 0, pretend = 0, frame = 0 - 558 @ frame_needed = 0, uses_anonymous_args = 0 - 559 .LVL50: - 560 0000 10B5 push {r4, lr} - 561 .LCFI8: - 562 .cfi_def_cfa_offset 8 - 563 .cfi_offset 4, -8 - 564 .cfi_offset 14, -4 - 108:Src/usbd_midi_if.c **** return false; - 565 .loc 1 108 0 - 566 0002 4300 lsls r3, r0, #1 - 567 0004 1818 adds r0, r3, r0 - 568 .LVL51: - ARM GAS /tmp/ccjHqQBe.s page 16 - - - 569 0006 8300 lsls r3, r0, #2 - 570 0008 0448 ldr r0, .L55 - 571 000a 1818 adds r0, r3, r0 - 572 000c FFF7FEFF bl _cureRingBufferU8GetUsedSize - 573 .LVL52: - 574 0010 0028 cmp r0, #0 - 575 0012 01D1 bne .L54 - 112:Src/usbd_midi_if.c **** } - 576 .loc 1 112 0 - 577 0014 0120 movs r0, #1 - 578 .L52: - 113:Src/usbd_midi_if.c **** - 579 .loc 1 113 0 - 580 @ sp needed - 581 0016 10BD pop {r4, pc} - 582 .L54: - 109:Src/usbd_midi_if.c **** } - 583 .loc 1 109 0 - 584 0018 0020 movs r0, #0 - 585 001a FCE7 b .L52 - 586 .L56: - 587 .align 2 - 588 .L55: - 589 001c 00000000 .word rbuf_usb_rx - 590 .cfi_endproc - 591 .LFE47: - 593 .section .text.isJackRxBufEmpty,"ax",%progbits - 594 .align 1 - 595 .global isJackRxBufEmpty - 596 .syntax unified - 597 .code 16 - 598 .thumb_func - 599 .fpu softvfp - 601 isJackRxBufEmpty: - 602 .LFB48: - 116:Src/usbd_midi_if.c **** if( 0 != _cureRingBufferU8GetUsedSize(&rbuf_jack_rx[cable_num]) ){ - 603 .loc 1 116 0 - 604 .cfi_startproc - 605 @ args = 0, pretend = 0, frame = 0 - 606 @ frame_needed = 0, uses_anonymous_args = 0 - 607 .LVL53: - 608 0000 10B5 push {r4, lr} - 609 .LCFI9: - 610 .cfi_def_cfa_offset 8 - 611 .cfi_offset 4, -8 - 612 .cfi_offset 14, -4 - 117:Src/usbd_midi_if.c **** return false; - 613 .loc 1 117 0 - 614 0002 4300 lsls r3, r0, #1 - 615 0004 1818 adds r0, r3, r0 - 616 .LVL54: - 617 0006 8300 lsls r3, r0, #2 - 618 0008 0448 ldr r0, .L61 - 619 000a 1818 adds r0, r3, r0 - 620 000c FFF7FEFF bl _cureRingBufferU8GetUsedSize - 621 .LVL55: - 622 0010 0028 cmp r0, #0 - ARM GAS /tmp/ccjHqQBe.s page 17 - - - 623 0012 01D1 bne .L60 - 121:Src/usbd_midi_if.c **** } - 624 .loc 1 121 0 - 625 0014 0120 movs r0, #1 - 626 .L58: - 122:Src/usbd_midi_if.c **** - 627 .loc 1 122 0 - 628 @ sp needed - 629 0016 10BD pop {r4, pc} - 630 .L60: - 118:Src/usbd_midi_if.c **** } - 631 .loc 1 118 0 - 632 0018 0020 movs r0, #0 - 633 001a FCE7 b .L58 - 634 .L62: - 635 .align 2 - 636 .L61: - 637 001c 00000000 .word rbuf_jack_rx - 638 .cfi_endproc - 639 .LFE48: - 641 .section .text.isRxBufEmpty,"ax",%progbits - 642 .align 1 - 643 .global isRxBufEmpty - 644 .syntax unified - 645 .code 16 - 646 .thumb_func - 647 .fpu softvfp - 649 isRxBufEmpty: - 650 .LFB49: - 125:Src/usbd_midi_if.c **** uint32_t i; - 651 .loc 1 125 0 - 652 .cfi_startproc - 653 @ args = 0, pretend = 0, frame = 0 - 654 @ frame_needed = 0, uses_anonymous_args = 0 - 655 0000 10B5 push {r4, lr} - 656 .LCFI10: - 657 .cfi_def_cfa_offset 8 - 658 .cfi_offset 4, -8 - 659 .cfi_offset 14, -4 - 660 .LVL56: - 128:Src/usbd_midi_if.c **** if(0 != _cureRingBufferU8GetUsedSize(&rbuf_usb_rx[i])) - 661 .loc 1 128 0 - 662 0002 0024 movs r4, #0 - 663 .LVL57: - 664 .L64: - 128:Src/usbd_midi_if.c **** if(0 != _cureRingBufferU8GetUsedSize(&rbuf_usb_rx[i])) - 665 .loc 1 128 0 is_stmt 0 discriminator 1 - 666 0004 002C cmp r4, #0 - 667 0006 04D0 beq .L66 - 135:Src/usbd_midi_if.c **** if(0 != _cureRingBufferU8GetUsedSize(&rbuf_jack_rx[i])) - 668 .loc 1 135 0 is_stmt 1 - 669 0008 0024 movs r4, #0 - 670 .LVL58: - 671 .L67: - 135:Src/usbd_midi_if.c **** if(0 != _cureRingBufferU8GetUsedSize(&rbuf_jack_rx[i])) - 672 .loc 1 135 0 is_stmt 0 discriminator 1 - 673 000a 002C cmp r4, #0 - ARM GAS /tmp/ccjHqQBe.s page 18 - - - 674 000c 0CD0 beq .L68 - 141:Src/usbd_midi_if.c **** } - 675 .loc 1 141 0 is_stmt 1 - 676 000e 0120 movs r0, #1 - 677 .L65: - 142:Src/usbd_midi_if.c **** - 678 .loc 1 142 0 - 679 @ sp needed - 680 .LVL59: - 681 0010 10BD pop {r4, pc} - 682 .LVL60: - 683 .L66: - 129:Src/usbd_midi_if.c **** { - 684 .loc 1 129 0 - 685 0012 6300 lsls r3, r4, #1 - 686 0014 1B19 adds r3, r3, r4 - 687 0016 9800 lsls r0, r3, #2 - 688 0018 0B4B ldr r3, .L71 - 689 001a C018 adds r0, r0, r3 - 690 001c FFF7FEFF bl _cureRingBufferU8GetUsedSize - 691 .LVL61: - 692 0020 0028 cmp r0, #0 - 693 0022 0CD1 bne .L69 - 128:Src/usbd_midi_if.c **** if(0 != _cureRingBufferU8GetUsedSize(&rbuf_usb_rx[i])) - 694 .loc 1 128 0 discriminator 2 - 695 0024 0134 adds r4, r4, #1 - 696 .LVL62: - 697 0026 EDE7 b .L64 - 698 .L68: - 136:Src/usbd_midi_if.c **** { - 699 .loc 1 136 0 - 700 0028 6300 lsls r3, r4, #1 - 701 002a 1B19 adds r3, r3, r4 - 702 002c 9800 lsls r0, r3, #2 - 703 002e 074B ldr r3, .L71+4 - 704 0030 C018 adds r0, r0, r3 - 705 0032 FFF7FEFF bl _cureRingBufferU8GetUsedSize - 706 .LVL63: - 707 0036 0028 cmp r0, #0 - 708 0038 03D1 bne .L70 - 135:Src/usbd_midi_if.c **** if(0 != _cureRingBufferU8GetUsedSize(&rbuf_jack_rx[i])) - 709 .loc 1 135 0 discriminator 2 - 710 003a 0134 adds r4, r4, #1 - 711 .LVL64: - 712 003c E5E7 b .L67 - 713 .L69: - 131:Src/usbd_midi_if.c **** } - 714 .loc 1 131 0 - 715 003e 0020 movs r0, #0 - 716 0040 E6E7 b .L65 - 717 .L70: - 138:Src/usbd_midi_if.c **** } - 718 .loc 1 138 0 - 719 0042 0020 movs r0, #0 - 720 0044 E4E7 b .L65 - 721 .L72: - 722 0046 C046 .align 2 - ARM GAS /tmp/ccjHqQBe.s page 19 - - - 723 .L71: - 724 0048 00000000 .word rbuf_usb_rx - 725 004c 00000000 .word rbuf_jack_rx - 726 .cfi_endproc - 727 .LFE49: - 729 .section .text.sendMidiMessage,"ax",%progbits - 730 .align 1 - 731 .global sendMidiMessage - 732 .syntax unified - 733 .code 16 - 734 .thumb_func - 735 .fpu softvfp - 737 sendMidiMessage: - 738 .LFB51: - 217:Src/usbd_midi_if.c **** if(size == 4){ - 739 .loc 1 217 0 - 740 .cfi_startproc - 741 @ args = 0, pretend = 0, frame = 0 - 742 @ frame_needed = 0, uses_anonymous_args = 0 - 743 .LVL65: - 744 0000 10B5 push {r4, lr} - 745 .LCFI11: - 746 .cfi_def_cfa_offset 8 - 747 .cfi_offset 4, -8 - 748 .cfi_offset 14, -4 - 218:Src/usbd_midi_if.c **** // APP_Rx_Buffer[0] = msg[0]; - 749 .loc 1 218 0 - 750 0002 0429 cmp r1, #4 - 751 0004 00D0 beq .L75 - 752 .LVL66: - 753 .L73: - 226:Src/usbd_midi_if.c **** - 754 .loc 1 226 0 - 755 @ sp needed - 756 0006 10BD pop {r4, pc} - 757 .LVL67: - 758 .L75: - 224:Src/usbd_midi_if.c **** } - 759 .loc 1 224 0 - 760 0008 FFF7FEFF bl MIDI_DataTx - 761 .LVL68: - 226:Src/usbd_midi_if.c **** - 762 .loc 1 226 0 - 763 000c FBE7 b .L73 - 764 .cfi_endproc - 765 .LFE51: - 767 .section .text.midiEventIsGenerated,"ax",%progbits - 768 .align 1 - 769 .global midiEventIsGenerated - 770 .syntax unified - 771 .code 16 - 772 .thumb_func - 773 .fpu softvfp - 775 midiEventIsGenerated: - 776 .LFB53: - 240:Src/usbd_midi_if.c **** - 241:Src/usbd_midi_if.c **** bool midiEventIsGenerated(uint8_t cable_num) - ARM GAS /tmp/ccjHqQBe.s page 20 - - - 242:Src/usbd_midi_if.c **** { - 777 .loc 1 242 0 - 778 .cfi_startproc - 779 @ args = 0, pretend = 0, frame = 0 - 780 @ frame_needed = 0, uses_anonymous_args = 0 - 781 .LVL69: - 782 0000 F0B5 push {r4, r5, r6, r7, lr} - 783 .LCFI12: - 784 .cfi_def_cfa_offset 20 - 785 .cfi_offset 4, -20 - 786 .cfi_offset 5, -16 - 787 .cfi_offset 6, -12 - 788 .cfi_offset 7, -8 - 789 .cfi_offset 14, -4 - 243:Src/usbd_midi_if.c **** uint8_t upper_half_byte= (rx_midi_msg[cable_num]) & 0xF0; - 790 .loc 1 243 0 - 791 0002 8F4B ldr r3, .L112 - 792 0004 1A5C ldrb r2, [r3, r0] - 793 0006 0F23 movs r3, #15 - 794 0008 1100 movs r1, r2 - 795 000a 9943 bics r1, r3 - 796 000c 0B00 movs r3, r1 - 797 .LVL70: - 244:Src/usbd_midi_if.c **** - 245:Src/usbd_midi_if.c **** if( upper_half_byte & 0x80 ){//0x80-0xFF:status byte - 798 .loc 1 245 0 - 799 000e 49B2 sxtb r1, r1 - 800 0010 0029 cmp r1, #0 - 801 0012 24DB blt .L103 - 246:Src/usbd_midi_if.c **** - 247:Src/usbd_midi_if.c **** switch(upper_half_byte){ - 248:Src/usbd_midi_if.c **** - 249:Src/usbd_midi_if.c **** case 0xF0://0xF0-0xFF:system message - 250:Src/usbd_midi_if.c **** switch(rx_midi_msg[cable_num]){ - 251:Src/usbd_midi_if.c **** - 252:Src/usbd_midi_if.c **** case 0xF0://SysEx Start - 253:Src/usbd_midi_if.c **** analyzed_status[cable_num].data_idx = 0; - 254:Src/usbd_midi_if.c **** midi_event[cable_num].midi_byte[ analyzed_status[cable_num].data_idx++ ] = rx_midi_msg[cable_ - 255:Src/usbd_midi_if.c **** analyzed_status[cable_num].type = MSG_SYSEX; - 256:Src/usbd_midi_if.c **** analyzed_status[cable_num].stat = WAIT_SYSTEM_DATA; - 257:Src/usbd_midi_if.c **** break; - 258:Src/usbd_midi_if.c **** - 259:Src/usbd_midi_if.c **** case 0xF7://SysEx End - 260:Src/usbd_midi_if.c **** midi_event[cable_num].midi_byte[ analyzed_status[cable_num].data_idx++ ] = rx_midi_msg[cable_ - 261:Src/usbd_midi_if.c **** midi_event[cable_num].length = analyzed_status[cable_num].data_idx; - 262:Src/usbd_midi_if.c **** analyzed_status[cable_num].stat = END_ANALYSIS; - 263:Src/usbd_midi_if.c **** break; - 264:Src/usbd_midi_if.c **** - 265:Src/usbd_midi_if.c **** case 0xF2://Song Position - 266:Src/usbd_midi_if.c **** midi_event[cable_num].midi_byte[0] = rx_midi_msg[cable_num]; - 267:Src/usbd_midi_if.c **** analyzed_status[cable_num].type = MSG_THREE_BYTE; - 268:Src/usbd_midi_if.c **** analyzed_status[cable_num].stat = WAIT_DATA1; - 269:Src/usbd_midi_if.c **** break; - 270:Src/usbd_midi_if.c **** - 271:Src/usbd_midi_if.c **** case 0xF1://Time Code - 272:Src/usbd_midi_if.c **** case 0xF3://Song Select - 273:Src/usbd_midi_if.c **** midi_event[cable_num].midi_byte[0] = rx_midi_msg[cable_num]; - ARM GAS /tmp/ccjHqQBe.s page 21 - - - 274:Src/usbd_midi_if.c **** analyzed_status[cable_num].type = MSG_TWO_BYTE; - 275:Src/usbd_midi_if.c **** analyzed_status[cable_num].stat = WAIT_DATA1; - 276:Src/usbd_midi_if.c **** break; - 277:Src/usbd_midi_if.c **** - 278:Src/usbd_midi_if.c **** case 0xF4://Undefined - 279:Src/usbd_midi_if.c **** case 0xF5://Undefined - 280:Src/usbd_midi_if.c **** case 0xF6://Tune request - 281:Src/usbd_midi_if.c **** case 0xF8://Timing clock - 282:Src/usbd_midi_if.c **** case 0xF9://Undefined - 283:Src/usbd_midi_if.c **** case 0xFA://Start - 284:Src/usbd_midi_if.c **** case 0xFB://Continue - 285:Src/usbd_midi_if.c **** case 0xFC://Stop - 286:Src/usbd_midi_if.c **** case 0xFD://Undefined - 287:Src/usbd_midi_if.c **** case 0xFE://Active Sensing - 288:Src/usbd_midi_if.c **** case 0xFF://Reset - 289:Src/usbd_midi_if.c **** midi_event[cable_num].midi_byte[0] = rx_midi_msg[cable_num]; - 290:Src/usbd_midi_if.c **** midi_event[cable_num].length = 1; - 291:Src/usbd_midi_if.c **** analyzed_status[cable_num].type = MSG_ONE_BYTE; - 292:Src/usbd_midi_if.c **** analyzed_status[cable_num].stat = END_ANALYSIS; - 293:Src/usbd_midi_if.c **** break; - 294:Src/usbd_midi_if.c **** } - 295:Src/usbd_midi_if.c **** analyzed_status[cable_num].is_system_common = true; - 296:Src/usbd_midi_if.c **** break; - 297:Src/usbd_midi_if.c **** - 298:Src/usbd_midi_if.c **** case 0x80://Note Off - 299:Src/usbd_midi_if.c **** case 0x90://Note On - 300:Src/usbd_midi_if.c **** case 0xA0://Polyphonic key-pressure - 301:Src/usbd_midi_if.c **** case 0xB0://ControlChange - 302:Src/usbd_midi_if.c **** case 0xE0://PitchBend - 303:Src/usbd_midi_if.c **** midi_event[cable_num].midi_byte[0] = rx_midi_msg[cable_num]; - 304:Src/usbd_midi_if.c **** analyzed_status[cable_num].type = MSG_THREE_BYTE; - 305:Src/usbd_midi_if.c **** analyzed_status[cable_num].stat = WAIT_DATA1; - 306:Src/usbd_midi_if.c **** analyzed_status[cable_num].is_system_common = false; - 307:Src/usbd_midi_if.c **** break; - 308:Src/usbd_midi_if.c **** - 309:Src/usbd_midi_if.c **** case 0xC0://Program Change - 310:Src/usbd_midi_if.c **** case 0xD0://Channel pressure - 311:Src/usbd_midi_if.c **** midi_event[cable_num].midi_byte[0] = rx_midi_msg[cable_num]; - 312:Src/usbd_midi_if.c **** analyzed_status[cable_num].type = MSG_TWO_BYTE; - 313:Src/usbd_midi_if.c **** analyzed_status[cable_num].stat = WAIT_DATA1; - 314:Src/usbd_midi_if.c **** analyzed_status[cable_num].is_system_common = false; - 315:Src/usbd_midi_if.c **** break; - 316:Src/usbd_midi_if.c **** - 317:Src/usbd_midi_if.c **** default: - 318:Src/usbd_midi_if.c **** analyzed_status[cable_num].type = MSG_NOTHING; - 319:Src/usbd_midi_if.c **** analyzed_status[cable_num].stat = START_ANALYSIS; - 320:Src/usbd_midi_if.c **** analyzed_status[cable_num].is_system_common = false; - 321:Src/usbd_midi_if.c **** break; - 322:Src/usbd_midi_if.c **** } - 323:Src/usbd_midi_if.c **** - 324:Src/usbd_midi_if.c **** }else{//0x00-0x7F:data byte - 325:Src/usbd_midi_if.c **** - 326:Src/usbd_midi_if.c **** switch(analyzed_status[cable_num].stat){ - 802 .loc 1 326 0 - 803 0014 8300 lsls r3, r0, #2 - 804 0016 8B49 ldr r1, .L112+4 - 805 .LVL71: - ARM GAS /tmp/ccjHqQBe.s page 22 - - - 806 0018 5B5C ldrb r3, [r3, r1] - 807 001a 022B cmp r3, #2 - 808 001c 00D1 bne .LCB748 - 809 001e DCE0 b .L92 @long jump - 810 .LCB748: - 811 0020 00D8 bhi .LCB750 - 812 0022 B7E0 b .L104 @long jump - 813 .LCB750: - 814 0024 032B cmp r3, #3 - 815 0026 00D1 bne .LCB752 - 816 0028 EEE0 b .L95 @long jump - 817 .LCB752: - 818 002a 042B cmp r3, #4 - 819 002c 60D1 bne .L91 - 327:Src/usbd_midi_if.c **** - 328:Src/usbd_midi_if.c **** case WAIT_DATA1: - 329:Src/usbd_midi_if.c **** midi_event[cable_num].midi_byte[1] = rx_midi_msg[cable_num]; - 330:Src/usbd_midi_if.c **** - 331:Src/usbd_midi_if.c **** if(MSG_THREE_BYTE == analyzed_status[cable_num].type ){ - 332:Src/usbd_midi_if.c **** analyzed_status[cable_num].stat = WAIT_DATA2; - 333:Src/usbd_midi_if.c **** }else if( MSG_TWO_BYTE == analyzed_status[cable_num].type ){ - 334:Src/usbd_midi_if.c **** midi_event[cable_num].length = 2; - 335:Src/usbd_midi_if.c **** analyzed_status[cable_num].stat = END_ANALYSIS; - 336:Src/usbd_midi_if.c **** }else{ - 337:Src/usbd_midi_if.c **** analyzed_status[cable_num].stat = START_ANALYSIS; - 338:Src/usbd_midi_if.c **** } - 339:Src/usbd_midi_if.c **** break; - 340:Src/usbd_midi_if.c **** - 341:Src/usbd_midi_if.c **** case WAIT_DATA2: - 342:Src/usbd_midi_if.c **** if(MSG_THREE_BYTE == analyzed_status[cable_num].type ){ - 343:Src/usbd_midi_if.c **** midi_event[cable_num].midi_byte[2] = rx_midi_msg[cable_num]; - 344:Src/usbd_midi_if.c **** midi_event[cable_num].length = 3; - 345:Src/usbd_midi_if.c **** analyzed_status[cable_num].stat = END_ANALYSIS; - 346:Src/usbd_midi_if.c **** }else{ - 347:Src/usbd_midi_if.c **** analyzed_status[cable_num].stat = START_ANALYSIS; - 348:Src/usbd_midi_if.c **** } - 349:Src/usbd_midi_if.c **** break; - 350:Src/usbd_midi_if.c **** - 351:Src/usbd_midi_if.c **** case WAIT_SYSTEM_DATA: - 352:Src/usbd_midi_if.c **** midi_event[cable_num].midi_byte[ analyzed_status[cable_num].data_idx++ ] = rx_midi_msg[cable_nu - 353:Src/usbd_midi_if.c **** - 354:Src/usbd_midi_if.c **** if(analyzed_status[cable_num].data_idx > (MIDI_SENDDATA_MAX - 1) ){ - 355:Src/usbd_midi_if.c **** analyzed_status[cable_num].stat = END_ANALYSIS; - 356:Src/usbd_midi_if.c **** } - 357:Src/usbd_midi_if.c **** break; - 358:Src/usbd_midi_if.c **** - 359:Src/usbd_midi_if.c **** case END_ANALYSIS://running status:When status byte is omitted. - 360:Src/usbd_midi_if.c **** midi_event[cable_num].midi_byte[1] = rx_midi_msg[cable_num]; - 820 .loc 1 360 0 - 821 002e 8101 lsls r1, r0, #6 - 822 0030 0918 adds r1, r1, r0 - 823 0032 854B ldr r3, .L112+8 - 824 0034 5B18 adds r3, r3, r1 - 825 0036 9A70 strb r2, [r3, #2] - 361:Src/usbd_midi_if.c **** if(MSG_THREE_BYTE == analyzed_status[cable_num].type){ - 826 .loc 1 361 0 - 827 0038 8200 lsls r2, r0, #2 - ARM GAS /tmp/ccjHqQBe.s page 23 - - - 828 .LVL72: - 829 003a 824B ldr r3, .L112+4 - 830 003c 9B18 adds r3, r3, r2 - 831 003e 5B78 ldrb r3, [r3, #1] - 832 0040 042B cmp r3, #4 - 833 0042 00D1 bne .LCB766 - 834 0044 F5E0 b .L105 @long jump - 835 .LCB766: - 362:Src/usbd_midi_if.c **** analyzed_status[cable_num].stat = WAIT_DATA2; - 363:Src/usbd_midi_if.c **** }else if(MSG_TWO_BYTE == analyzed_status[cable_num].type){ - 836 .loc 1 363 0 - 837 0046 032B cmp r3, #3 - 838 0048 52D1 bne .L91 - 364:Src/usbd_midi_if.c **** midi_event[cable_num].length = 2; - 839 .loc 1 364 0 - 840 004a 8301 lsls r3, r0, #6 - 841 004c 1B18 adds r3, r3, r0 - 842 004e 7E4A ldr r2, .L112+8 - 843 0050 0221 movs r1, #2 - 844 0052 9954 strb r1, [r3, r2] - 365:Src/usbd_midi_if.c **** analyzed_status[cable_num].stat = END_ANALYSIS; - 845 .loc 1 365 0 - 846 0054 8300 lsls r3, r0, #2 - 847 0056 7B4A ldr r2, .L112+4 - 848 0058 0231 adds r1, r1, #2 - 849 005a 9954 strb r1, [r3, r2] - 850 005c 48E0 b .L91 - 851 .LVL73: - 852 .L103: - 247:Src/usbd_midi_if.c **** - 853 .loc 1 247 0 - 854 005e B02B cmp r3, #176 - 855 0060 00D1 bne .LCB784 - 856 0062 88E0 b .L79 @long jump - 857 .LCB784: - 858 0064 10D9 bls .L106 - 859 0066 D02B cmp r3, #208 - 860 0068 21D0 beq .L81 - 861 006a 1ED9 bls .L107 - 862 006c E02B cmp r3, #224 - 863 006e 00D1 bne .LCB792 - 864 0070 81E0 b .L79 @long jump - 865 .LCB792: - 866 0072 F02B cmp r3, #240 - 867 0074 11D1 bne .L78 - 250:Src/usbd_midi_if.c **** - 868 .loc 1 250 0 - 869 0076 1300 movs r3, r2 - 870 0078 1033 adds r3, r3, #16 - 871 007a D9B2 uxtb r1, r3 - 872 .LVL74: - 873 007c 0F29 cmp r1, #15 - 874 007e 32D8 bhi .L84 - 875 0080 8B00 lsls r3, r1, #2 - 876 0082 7249 ldr r1, .L112+12 - 877 0084 CB58 ldr r3, [r1, r3] - 878 0086 9F46 mov pc, r3 - ARM GAS /tmp/ccjHqQBe.s page 24 - - - 879 .section .rodata.midiEventIsGenerated,"a",%progbits - 880 .align 2 - 881 .L86: - 882 0000 CC000000 .word .L85 - 883 0004 3E010000 .word .L87 - 884 0008 24010000 .word .L88 - 885 000c 3E010000 .word .L87 - 886 0010 58010000 .word .L89 - 887 0014 58010000 .word .L89 - 888 0018 58010000 .word .L89 - 889 001c 00010000 .word .L90 - 890 0020 58010000 .word .L89 - 891 0024 58010000 .word .L89 - 892 0028 58010000 .word .L89 - 893 002c 58010000 .word .L89 - 894 0030 58010000 .word .L89 - 895 0034 58010000 .word .L89 - 896 0038 58010000 .word .L89 - 897 003c 58010000 .word .L89 - 898 .section .text.midiEventIsGenerated - 899 .LVL75: - 900 .L106: - 247:Src/usbd_midi_if.c **** - 901 .loc 1 247 0 - 902 0088 902B cmp r3, #144 - 903 008a 00D1 bne .LCB814 - 904 008c 73E0 b .L79 @long jump - 905 .LCB814: - 906 008e A02B cmp r3, #160 - 907 0090 00D1 bne .LCB816 - 908 0092 70E0 b .L79 @long jump - 909 .LCB816: - 910 0094 802B cmp r3, #128 - 911 0096 00D1 bne .LCB818 - 912 0098 6DE0 b .L79 @long jump - 913 .LCB818: - 914 .L78: - 318:Src/usbd_midi_if.c **** analyzed_status[cable_num].stat = START_ANALYSIS; - 915 .loc 1 318 0 - 916 009a 6A49 ldr r1, .L112+4 - 917 .LVL76: - 918 009c 8400 lsls r4, r0, #2 - 919 009e 0A19 adds r2, r1, r4 - 920 00a0 0023 movs r3, #0 - 921 .LVL77: - 922 00a2 5370 strb r3, [r2, #1] - 319:Src/usbd_midi_if.c **** analyzed_status[cable_num].is_system_common = false; - 923 .loc 1 319 0 - 924 00a4 6354 strb r3, [r4, r1] - 320:Src/usbd_midi_if.c **** break; - 925 .loc 1 320 0 - 926 00a6 9370 strb r3, [r2, #2] - 321:Src/usbd_midi_if.c **** } - 927 .loc 1 321 0 - 928 00a8 22E0 b .L91 - 929 .LVL78: - 930 .L107: - ARM GAS /tmp/ccjHqQBe.s page 25 - - - 247:Src/usbd_midi_if.c **** - 931 .loc 1 247 0 - 932 00aa C02B cmp r3, #192 - 933 00ac F5D1 bne .L78 - 934 .L81: - 311:Src/usbd_midi_if.c **** analyzed_status[cable_num].type = MSG_TWO_BYTE; - 935 .loc 1 311 0 - 936 00ae 8101 lsls r1, r0, #6 - 937 .LVL79: - 938 00b0 0918 adds r1, r1, r0 - 939 00b2 654B ldr r3, .L112+8 - 940 .LVL80: - 941 00b4 5B18 adds r3, r3, r1 - 942 00b6 5A70 strb r2, [r3, #1] - 312:Src/usbd_midi_if.c **** analyzed_status[cable_num].stat = WAIT_DATA1; - 943 .loc 1 312 0 - 944 00b8 624A ldr r2, .L112+4 - 945 .LVL81: - 946 00ba 8100 lsls r1, r0, #2 - 947 00bc 5318 adds r3, r2, r1 - 948 00be 0324 movs r4, #3 - 949 00c0 5C70 strb r4, [r3, #1] - 313:Src/usbd_midi_if.c **** analyzed_status[cable_num].is_system_common = false; - 950 .loc 1 313 0 - 951 00c2 023C subs r4, r4, #2 - 952 00c4 8C54 strb r4, [r1, r2] - 314:Src/usbd_midi_if.c **** break; - 953 .loc 1 314 0 - 954 00c6 0022 movs r2, #0 - 955 00c8 9A70 strb r2, [r3, #2] - 315:Src/usbd_midi_if.c **** - 956 .loc 1 315 0 - 957 00ca 11E0 b .L91 - 958 .LVL82: - 959 .L85: - 254:Src/usbd_midi_if.c **** analyzed_status[cable_num].type = MSG_SYSEX; - 960 .loc 1 254 0 - 961 00cc 5D4C ldr r4, .L112+4 - 962 00ce 8500 lsls r5, r0, #2 - 963 00d0 6619 adds r6, r4, r5 - 964 00d2 0127 movs r7, #1 - 965 00d4 F770 strb r7, [r6, #3] - 966 00d6 8101 lsls r1, r0, #6 - 967 00d8 0918 adds r1, r1, r0 - 968 00da 5B4B ldr r3, .L112+8 - 969 00dc 5B18 adds r3, r3, r1 - 970 00de 5A70 strb r2, [r3, #1] - 255:Src/usbd_midi_if.c **** analyzed_status[cable_num].stat = WAIT_SYSTEM_DATA; - 971 .loc 1 255 0 - 972 00e0 7770 strb r7, [r6, #1] - 256:Src/usbd_midi_if.c **** break; - 973 .loc 1 256 0 - 974 00e2 0323 movs r3, #3 - 975 00e4 2B55 strb r3, [r5, r4] - 976 .LVL83: - 977 .L84: - 295:Src/usbd_midi_if.c **** break; - ARM GAS /tmp/ccjHqQBe.s page 26 - - - 978 .loc 1 295 0 - 979 00e6 8200 lsls r2, r0, #2 - 980 00e8 564B ldr r3, .L112+4 - 981 00ea 9B18 adds r3, r3, r2 - 982 00ec 0122 movs r2, #1 - 983 00ee 9A70 strb r2, [r3, #2] - 984 .L91: - 366:Src/usbd_midi_if.c **** } - 367:Src/usbd_midi_if.c **** break; - 368:Src/usbd_midi_if.c **** - 369:Src/usbd_midi_if.c **** case START_ANALYSIS: - 370:Src/usbd_midi_if.c **** break; - 371:Src/usbd_midi_if.c **** - 372:Src/usbd_midi_if.c **** default: - 373:Src/usbd_midi_if.c **** break; - 374:Src/usbd_midi_if.c **** } - 375:Src/usbd_midi_if.c **** } - 376:Src/usbd_midi_if.c **** - 377:Src/usbd_midi_if.c **** if(END_ANALYSIS == analyzed_status[cable_num].stat){ - 985 .loc 1 377 0 - 986 00f0 8000 lsls r0, r0, #2 - 987 .LVL84: - 988 00f2 544B ldr r3, .L112+4 - 989 00f4 C35C ldrb r3, [r0, r3] - 990 00f6 042B cmp r3, #4 - 991 00f8 00D1 bne .LCB889 - 992 00fa 9FE0 b .L108 @long jump - 993 .LCB889: - 378:Src/usbd_midi_if.c **** return true; - 379:Src/usbd_midi_if.c **** }else{ - 380:Src/usbd_midi_if.c **** return false; - 994 .loc 1 380 0 - 995 00fc 0020 movs r0, #0 - 996 .L101: - 381:Src/usbd_midi_if.c **** } - 382:Src/usbd_midi_if.c **** - 383:Src/usbd_midi_if.c **** } - 997 .loc 1 383 0 - 998 @ sp needed - 999 00fe F0BD pop {r4, r5, r6, r7, pc} - 1000 .LVL85: - 1001 .L90: - 260:Src/usbd_midi_if.c **** midi_event[cable_num].length = analyzed_status[cable_num].data_idx; - 1002 .loc 1 260 0 - 1003 0100 504D ldr r5, .L112+4 - 1004 0102 8600 lsls r6, r0, #2 - 1005 0104 AB19 adds r3, r5, r6 - 1006 0106 D978 ldrb r1, [r3, #3] - 1007 0108 8C46 mov ip, r1 - 1008 010a 0131 adds r1, r1, #1 - 1009 010c C9B2 uxtb r1, r1 - 1010 010e D970 strb r1, [r3, #3] - 1011 0110 4D4F ldr r7, .L112+8 - 1012 0112 8301 lsls r3, r0, #6 - 1013 0114 1B18 adds r3, r3, r0 - 1014 0116 FC18 adds r4, r7, r3 - 1015 0118 6444 add r4, r4, ip - ARM GAS /tmp/ccjHqQBe.s page 27 - - - 1016 011a 6270 strb r2, [r4, #1] - 261:Src/usbd_midi_if.c **** analyzed_status[cable_num].stat = END_ANALYSIS; - 1017 .loc 1 261 0 - 1018 011c D955 strb r1, [r3, r7] - 262:Src/usbd_midi_if.c **** break; - 1019 .loc 1 262 0 - 1020 011e 0423 movs r3, #4 - 1021 0120 7355 strb r3, [r6, r5] - 263:Src/usbd_midi_if.c **** - 1022 .loc 1 263 0 - 1023 0122 E0E7 b .L84 - 1024 .L88: - 266:Src/usbd_midi_if.c **** analyzed_status[cable_num].type = MSG_THREE_BYTE; - 1025 .loc 1 266 0 - 1026 0124 8101 lsls r1, r0, #6 - 1027 0126 0918 adds r1, r1, r0 - 1028 0128 474B ldr r3, .L112+8 - 1029 012a 5B18 adds r3, r3, r1 - 1030 012c 5A70 strb r2, [r3, #1] - 267:Src/usbd_midi_if.c **** analyzed_status[cable_num].stat = WAIT_DATA1; - 1031 .loc 1 267 0 - 1032 012e 454B ldr r3, .L112+4 - 1033 0130 8200 lsls r2, r0, #2 - 1034 .LVL86: - 1035 0132 9918 adds r1, r3, r2 - 1036 0134 0424 movs r4, #4 - 1037 0136 4C70 strb r4, [r1, #1] - 268:Src/usbd_midi_if.c **** break; - 1038 .loc 1 268 0 - 1039 0138 0121 movs r1, #1 - 1040 013a D154 strb r1, [r2, r3] - 269:Src/usbd_midi_if.c **** - 1041 .loc 1 269 0 - 1042 013c D3E7 b .L84 - 1043 .LVL87: - 1044 .L87: - 273:Src/usbd_midi_if.c **** analyzed_status[cable_num].type = MSG_TWO_BYTE; - 1045 .loc 1 273 0 - 1046 013e 8101 lsls r1, r0, #6 - 1047 0140 0918 adds r1, r1, r0 - 1048 0142 414B ldr r3, .L112+8 - 1049 0144 5B18 adds r3, r3, r1 - 1050 0146 5A70 strb r2, [r3, #1] - 274:Src/usbd_midi_if.c **** analyzed_status[cable_num].stat = WAIT_DATA1; - 1051 .loc 1 274 0 - 1052 0148 3E4B ldr r3, .L112+4 - 1053 014a 8200 lsls r2, r0, #2 - 1054 .LVL88: - 1055 014c 9918 adds r1, r3, r2 - 1056 014e 0324 movs r4, #3 - 1057 0150 4C70 strb r4, [r1, #1] - 275:Src/usbd_midi_if.c **** break; - 1058 .loc 1 275 0 - 1059 0152 0121 movs r1, #1 - 1060 0154 D154 strb r1, [r2, r3] - 276:Src/usbd_midi_if.c **** - 1061 .loc 1 276 0 - ARM GAS /tmp/ccjHqQBe.s page 28 - - - 1062 0156 C6E7 b .L84 - 1063 .LVL89: - 1064 .L89: - 289:Src/usbd_midi_if.c **** midi_event[cable_num].length = 1; - 1065 .loc 1 289 0 - 1066 0158 3B49 ldr r1, .L112+8 - 1067 015a 8301 lsls r3, r0, #6 - 1068 015c 1B18 adds r3, r3, r0 - 1069 015e CC18 adds r4, r1, r3 - 1070 0160 6270 strb r2, [r4, #1] - 290:Src/usbd_midi_if.c **** analyzed_status[cable_num].type = MSG_ONE_BYTE; - 1071 .loc 1 290 0 - 1072 0162 0122 movs r2, #1 - 1073 .LVL90: - 1074 0164 5A54 strb r2, [r3, r1] - 291:Src/usbd_midi_if.c **** analyzed_status[cable_num].stat = END_ANALYSIS; - 1075 .loc 1 291 0 - 1076 0166 374B ldr r3, .L112+4 - 1077 0168 8200 lsls r2, r0, #2 - 1078 016a 9918 adds r1, r3, r2 - 1079 016c 0224 movs r4, #2 - 1080 016e 4C70 strb r4, [r1, #1] - 292:Src/usbd_midi_if.c **** break; - 1081 .loc 1 292 0 - 1082 0170 0421 movs r1, #4 - 1083 0172 D154 strb r1, [r2, r3] - 293:Src/usbd_midi_if.c **** } - 1084 .loc 1 293 0 - 1085 0174 B7E7 b .L84 - 1086 .LVL91: - 1087 .L79: - 303:Src/usbd_midi_if.c **** analyzed_status[cable_num].type = MSG_THREE_BYTE; - 1088 .loc 1 303 0 - 1089 0176 8101 lsls r1, r0, #6 - 1090 .LVL92: - 1091 0178 0918 adds r1, r1, r0 - 1092 017a 334B ldr r3, .L112+8 - 1093 .LVL93: - 1094 017c 5B18 adds r3, r3, r1 - 1095 017e 5A70 strb r2, [r3, #1] - 304:Src/usbd_midi_if.c **** analyzed_status[cable_num].stat = WAIT_DATA1; - 1096 .loc 1 304 0 - 1097 0180 304A ldr r2, .L112+4 - 1098 .LVL94: - 1099 0182 8100 lsls r1, r0, #2 - 1100 0184 5318 adds r3, r2, r1 - 1101 0186 0424 movs r4, #4 - 1102 0188 5C70 strb r4, [r3, #1] - 305:Src/usbd_midi_if.c **** analyzed_status[cable_num].is_system_common = false; - 1103 .loc 1 305 0 - 1104 018a 033C subs r4, r4, #3 - 1105 018c 8C54 strb r4, [r1, r2] - 306:Src/usbd_midi_if.c **** break; - 1106 .loc 1 306 0 - 1107 018e 0022 movs r2, #0 - 1108 0190 9A70 strb r2, [r3, #2] - 307:Src/usbd_midi_if.c **** - ARM GAS /tmp/ccjHqQBe.s page 29 - - - 1109 .loc 1 307 0 - 1110 0192 ADE7 b .L91 - 1111 .LVL95: - 1112 .L104: - 326:Src/usbd_midi_if.c **** - 1113 .loc 1 326 0 - 1114 0194 012B cmp r3, #1 - 1115 0196 ABD1 bne .L91 - 329:Src/usbd_midi_if.c **** - 1116 .loc 1 329 0 - 1117 0198 8101 lsls r1, r0, #6 - 1118 019a 0918 adds r1, r1, r0 - 1119 019c 2A4B ldr r3, .L112+8 - 1120 019e 5B18 adds r3, r3, r1 - 1121 01a0 9A70 strb r2, [r3, #2] - 331:Src/usbd_midi_if.c **** analyzed_status[cable_num].stat = WAIT_DATA2; - 1122 .loc 1 331 0 - 1123 01a2 8200 lsls r2, r0, #2 - 1124 .LVL96: - 1125 01a4 274B ldr r3, .L112+4 - 1126 01a6 9B18 adds r3, r3, r2 - 1127 01a8 5B78 ldrb r3, [r3, #1] - 1128 01aa 042B cmp r3, #4 - 1129 01ac 06D0 beq .L109 - 333:Src/usbd_midi_if.c **** midi_event[cable_num].length = 2; - 1130 .loc 1 333 0 - 1131 01ae 032B cmp r3, #3 - 1132 01b0 09D0 beq .L110 - 337:Src/usbd_midi_if.c **** } - 1133 .loc 1 337 0 - 1134 01b2 8300 lsls r3, r0, #2 - 1135 01b4 234A ldr r2, .L112+4 - 1136 01b6 0021 movs r1, #0 - 1137 01b8 9954 strb r1, [r3, r2] - 1138 01ba 99E7 b .L91 - 1139 .L109: - 332:Src/usbd_midi_if.c **** }else if( MSG_TWO_BYTE == analyzed_status[cable_num].type ){ - 1140 .loc 1 332 0 - 1141 01bc 1300 movs r3, r2 - 1142 01be 214A ldr r2, .L112+4 - 1143 01c0 0221 movs r1, #2 - 1144 01c2 9954 strb r1, [r3, r2] - 1145 01c4 94E7 b .L91 - 1146 .L110: - 334:Src/usbd_midi_if.c **** analyzed_status[cable_num].stat = END_ANALYSIS; - 1147 .loc 1 334 0 - 1148 01c6 8301 lsls r3, r0, #6 - 1149 01c8 1B18 adds r3, r3, r0 - 1150 01ca 1F4A ldr r2, .L112+8 - 1151 01cc 0221 movs r1, #2 - 1152 01ce 9954 strb r1, [r3, r2] - 335:Src/usbd_midi_if.c **** }else{ - 1153 .loc 1 335 0 - 1154 01d0 8300 lsls r3, r0, #2 - 1155 01d2 1C4A ldr r2, .L112+4 - 1156 01d4 0231 adds r1, r1, #2 - 1157 01d6 9954 strb r1, [r3, r2] - ARM GAS /tmp/ccjHqQBe.s page 30 - - - 1158 01d8 8AE7 b .L91 - 1159 .LVL97: - 1160 .L92: - 342:Src/usbd_midi_if.c **** midi_event[cable_num].midi_byte[2] = rx_midi_msg[cable_num]; - 1161 .loc 1 342 0 - 1162 01da 8100 lsls r1, r0, #2 - 1163 01dc 194B ldr r3, .L112+4 - 1164 01de 5B18 adds r3, r3, r1 - 1165 01e0 5B78 ldrb r3, [r3, #1] - 1166 01e2 042B cmp r3, #4 - 1167 01e4 04D0 beq .L111 - 347:Src/usbd_midi_if.c **** } - 1168 .loc 1 347 0 - 1169 01e6 8300 lsls r3, r0, #2 - 1170 01e8 164A ldr r2, .L112+4 - 1171 .LVL98: - 1172 01ea 0021 movs r1, #0 - 1173 01ec 9954 strb r1, [r3, r2] - 1174 01ee 7FE7 b .L91 - 1175 .LVL99: - 1176 .L111: - 343:Src/usbd_midi_if.c **** midi_event[cable_num].length = 3; - 1177 .loc 1 343 0 - 1178 01f0 1549 ldr r1, .L112+8 - 1179 01f2 8301 lsls r3, r0, #6 - 1180 01f4 1B18 adds r3, r3, r0 - 1181 01f6 CC18 adds r4, r1, r3 - 1182 01f8 E270 strb r2, [r4, #3] - 344:Src/usbd_midi_if.c **** analyzed_status[cable_num].stat = END_ANALYSIS; - 1183 .loc 1 344 0 - 1184 01fa 0322 movs r2, #3 - 1185 .LVL100: - 1186 01fc 5A54 strb r2, [r3, r1] - 345:Src/usbd_midi_if.c **** }else{ - 1187 .loc 1 345 0 - 1188 01fe 8300 lsls r3, r0, #2 - 1189 0200 104A ldr r2, .L112+4 - 1190 0202 0421 movs r1, #4 - 1191 0204 9954 strb r1, [r3, r2] - 1192 0206 73E7 b .L91 - 1193 .LVL101: - 1194 .L95: - 352:Src/usbd_midi_if.c **** - 1195 .loc 1 352 0 - 1196 0208 8300 lsls r3, r0, #2 - 1197 020a 0E4C ldr r4, .L112+4 - 1198 020c E418 adds r4, r4, r3 - 1199 020e E578 ldrb r5, [r4, #3] - 1200 0210 691C adds r1, r5, #1 - 1201 0212 C9B2 uxtb r1, r1 - 1202 0214 E170 strb r1, [r4, #3] - 1203 0216 8401 lsls r4, r0, #6 - 1204 0218 2418 adds r4, r4, r0 - 1205 021a 0B4B ldr r3, .L112+8 - 1206 021c 1B19 adds r3, r3, r4 - 1207 021e 5B19 adds r3, r3, r5 - 1208 0220 5A70 strb r2, [r3, #1] - ARM GAS /tmp/ccjHqQBe.s page 31 - - - 354:Src/usbd_midi_if.c **** analyzed_status[cable_num].stat = END_ANALYSIS; - 1209 .loc 1 354 0 - 1210 0222 3F29 cmp r1, #63 - 1211 0224 00D8 bhi .LCB1099 - 1212 0226 63E7 b .L91 @long jump - 1213 .LCB1099: - 355:Src/usbd_midi_if.c **** } - 1214 .loc 1 355 0 - 1215 0228 8300 lsls r3, r0, #2 - 1216 022a 064A ldr r2, .L112+4 - 1217 .LVL102: - 1218 022c 0421 movs r1, #4 - 1219 022e 9954 strb r1, [r3, r2] - 1220 0230 5EE7 b .L91 - 1221 .L105: - 362:Src/usbd_midi_if.c **** }else if(MSG_TWO_BYTE == analyzed_status[cable_num].type){ - 1222 .loc 1 362 0 - 1223 0232 1300 movs r3, r2 - 1224 0234 034A ldr r2, .L112+4 - 1225 0236 0221 movs r1, #2 - 1226 0238 9954 strb r1, [r3, r2] - 1227 023a 59E7 b .L91 - 1228 .LVL103: - 1229 .L108: - 378:Src/usbd_midi_if.c **** }else{ - 1230 .loc 1 378 0 - 1231 023c 0120 movs r0, #1 - 1232 023e 5EE7 b .L101 - 1233 .L113: - 1234 .align 2 - 1235 .L112: - 1236 0240 00000000 .word rx_midi_msg - 1237 0244 00000000 .word analyzed_status - 1238 0248 00000000 .word midi_event - 1239 024c 00000000 .word .L86 - 1240 .cfi_endproc - 1241 .LFE53: - 1243 .section .text.midiGenerateUsbPacket,"ax",%progbits - 1244 .align 1 - 1245 .global midiGenerateUsbPacket - 1246 .syntax unified - 1247 .code 16 - 1248 .thumb_func - 1249 .fpu softvfp - 1251 midiGenerateUsbPacket: - 1252 .LFB54: - 384:Src/usbd_midi_if.c **** - 385:Src/usbd_midi_if.c **** - 386:Src/usbd_midi_if.c **** void midiGenerateUsbPacket(uint8_t cable_num) - 387:Src/usbd_midi_if.c **** { - 1253 .loc 1 387 0 - 1254 .cfi_startproc - 1255 @ args = 0, pretend = 0, frame = 8 - 1256 @ frame_needed = 0, uses_anonymous_args = 0 - 1257 .LVL104: - 1258 0000 F0B5 push {r4, r5, r6, r7, lr} - 1259 .LCFI13: - ARM GAS /tmp/ccjHqQBe.s page 32 - - - 1260 .cfi_def_cfa_offset 20 - 1261 .cfi_offset 4, -20 - 1262 .cfi_offset 5, -16 - 1263 .cfi_offset 6, -12 - 1264 .cfi_offset 7, -8 - 1265 .cfi_offset 14, -4 - 1266 0002 83B0 sub sp, sp, #12 - 1267 .LCFI14: - 1268 .cfi_def_cfa_offset 32 - 1269 0004 0700 movs r7, r0 - 388:Src/usbd_midi_if.c **** uint8_t msg_buf[4] = {0x00,0x00,0x00,0x00}; - 1270 .loc 1 388 0 - 1271 0006 0023 movs r3, #0 - 1272 0008 0193 str r3, [sp, #4] - 1273 .LVL105: - 389:Src/usbd_midi_if.c **** uint32_t cnt_remain=0, cnt_length; - 390:Src/usbd_midi_if.c **** - 391:Src/usbd_midi_if.c **** switch(analyzed_status[cable_num].type){ - 1274 .loc 1 391 0 - 1275 000a 0400 movs r4, r0 - 1276 000c 8200 lsls r2, r0, #2 - 1277 000e 504B ldr r3, .L136 - 1278 0010 9B18 adds r3, r3, r2 - 1279 0012 5B78 ldrb r3, [r3, #1] - 1280 0014 022B cmp r3, #2 - 1281 0016 18D0 beq .L116 - 1282 0018 04D8 bhi .L117 - 1283 001a 012B cmp r3, #1 - 1284 001c 23D1 bne .L115 - 392:Src/usbd_midi_if.c **** - 393:Src/usbd_midi_if.c **** case MSG_ONE_BYTE: - 394:Src/usbd_midi_if.c **** //byte 0: cable number + code index number - 395:Src/usbd_midi_if.c **** msg_buf[0] = (cable_num << 4) + ((midi_event[cable_num].midi_byte[0] & 0xF0) >> 4); - 396:Src/usbd_midi_if.c **** - 397:Src/usbd_midi_if.c **** sendMidiMessage(msg_buf,4); - 398:Src/usbd_midi_if.c **** break; - 399:Src/usbd_midi_if.c **** - 400:Src/usbd_midi_if.c **** case MSG_TWO_BYTE: - 401:Src/usbd_midi_if.c **** case MSG_THREE_BYTE: - 402:Src/usbd_midi_if.c **** //byte 0: cable number + code index number - 403:Src/usbd_midi_if.c **** if(analyzed_status[cable_num].is_system_common){ - 404:Src/usbd_midi_if.c **** msg_buf[0] = (cable_num << 4) + midi_event[cable_num].length; - 405:Src/usbd_midi_if.c **** }else{ - 406:Src/usbd_midi_if.c **** msg_buf[0] = (cable_num << 4) + ((midi_event[cable_num].midi_byte[0] & 0xF0) >> 4); - 407:Src/usbd_midi_if.c **** } - 408:Src/usbd_midi_if.c **** - 409:Src/usbd_midi_if.c **** //byte 1-3 - 410:Src/usbd_midi_if.c **** for(uint32_t i=0; i=3){ - 458:Src/usbd_midi_if.c **** cnt_remain = 0; - 459:Src/usbd_midi_if.c **** } - 460:Src/usbd_midi_if.c **** } - 461:Src/usbd_midi_if.c **** break; - 462:Src/usbd_midi_if.c **** - 463:Src/usbd_midi_if.c **** default: - 464:Src/usbd_midi_if.c **** break; - 465:Src/usbd_midi_if.c **** } - 466:Src/usbd_midi_if.c **** USBD_MIDI_SendPacket(); - 1334 .loc 1 466 0 - 1335 0066 FFF7FEFF bl USBD_MIDI_SendPacket - 1336 .LVL108: - 467:Src/usbd_midi_if.c **** } - 1337 .loc 1 467 0 - 1338 006a 03B0 add sp, sp, #12 - 1339 @ sp needed - 1340 006c F0BD pop {r4, r5, r6, r7, pc} - 1341 .LVL109: - 1342 .L120: - 406:Src/usbd_midi_if.c **** } - ARM GAS /tmp/ccjHqQBe.s page 35 - - - 1343 .loc 1 406 0 - 1344 006e 0301 lsls r3, r0, #4 - 1345 0070 DBB2 uxtb r3, r3 - 1346 0072 8201 lsls r2, r0, #6 - 1347 0074 1218 adds r2, r2, r0 - 1348 0076 374F ldr r7, .L136+4 - 1349 0078 BF18 adds r7, r7, r2 - 1350 007a 7A78 ldrb r2, [r7, #1] - 1351 007c 1209 lsrs r2, r2, #4 - 1352 007e 9B18 adds r3, r3, r2 - 1353 0080 01AA add r2, sp, #4 - 1354 0082 1370 strb r3, [r2] - 1355 0084 DFE7 b .L121 - 1356 .LVL110: - 1357 .L123: - 1358 .LBB5: - 411:Src/usbd_midi_if.c **** } - 1359 .loc 1 411 0 discriminator 3 - 1360 0086 481C adds r0, r1, #1 - 1361 0088 A201 lsls r2, r4, #6 - 1362 008a 1219 adds r2, r2, r4 - 1363 008c 314B ldr r3, .L136+4 - 1364 008e 9B18 adds r3, r3, r2 - 1365 0090 5B18 adds r3, r3, r1 - 1366 0092 5A78 ldrb r2, [r3, #1] - 1367 0094 01AB add r3, sp, #4 - 1368 0096 1A54 strb r2, [r3, r0] - 1369 .LVL111: - 410:Src/usbd_midi_if.c **** msg_buf[i+1] = midi_event[cable_num].midi_byte[i]; - 1370 .loc 1 410 0 discriminator 3 - 1371 0098 0100 movs r1, r0 - 1372 .LVL112: - 1373 .L122: - 410:Src/usbd_midi_if.c **** msg_buf[i+1] = midi_event[cable_num].midi_byte[i]; - 1374 .loc 1 410 0 is_stmt 0 discriminator 1 - 1375 009a A201 lsls r2, r4, #6 - 1376 009c 1219 adds r2, r2, r4 - 1377 009e 2D4B ldr r3, .L136+4 - 1378 00a0 D35C ldrb r3, [r2, r3] - 1379 00a2 8B42 cmp r3, r1 - 1380 00a4 EFD8 bhi .L123 - 1381 .LBE5: - 414:Src/usbd_midi_if.c **** break; - 1382 .loc 1 414 0 is_stmt 1 - 1383 00a6 0421 movs r1, #4 - 1384 .LVL113: - 1385 00a8 01A8 add r0, sp, #4 - 1386 00aa FFF7FEFF bl sendMidiMessage - 1387 .LVL114: - 415:Src/usbd_midi_if.c **** - 1388 .loc 1 415 0 - 1389 00ae DAE7 b .L115 - 1390 .LVL115: - 1391 .L135: - 421:Src/usbd_midi_if.c **** msg_buf[0] = (cable_num << 4) + 0x4; //SysEx starts or continues - 1392 .loc 1 421 0 - 1393 00b0 01A8 add r0, sp, #4 - ARM GAS /tmp/ccjHqQBe.s page 36 - - - 1394 00b2 C370 strb r3, [r0, #3] - 422:Src/usbd_midi_if.c **** sendMidiMessage(msg_buf,4); - 1395 .loc 1 422 0 - 1396 00b4 3B01 lsls r3, r7, #4 - 1397 00b6 DBB2 uxtb r3, r3 - 1398 00b8 0433 adds r3, r3, #4 - 1399 00ba 0370 strb r3, [r0] - 423:Src/usbd_midi_if.c **** }else{ - 1400 .loc 1 423 0 - 1401 00bc 0421 movs r1, #4 - 1402 00be FFF7FEFF bl sendMidiMessage - 1403 .LVL116: - 1404 00c2 3FE0 b .L126 - 1405 .L124: - 431:Src/usbd_midi_if.c **** case 0: - 1406 .loc 1 431 0 - 1407 00c4 012D cmp r5, #1 - 1408 00c6 1CD0 beq .L127 - 1409 00c8 002D cmp r5, #0 - 1410 00ca 0CD0 beq .L128 - 1411 00cc 022D cmp r5, #2 - 1412 00ce 39D1 bne .L126 - 447:Src/usbd_midi_if.c **** msg_buf[3] = 0xF7; - 1413 .loc 1 447 0 - 1414 00d0 3B01 lsls r3, r7, #4 - 1415 00d2 DBB2 uxtb r3, r3 - 1416 00d4 0733 adds r3, r3, #7 - 1417 00d6 01A8 add r0, sp, #4 - 1418 00d8 0370 strb r3, [r0] - 448:Src/usbd_midi_if.c **** sendMidiMessage(msg_buf,4); - 1419 .loc 1 448 0 - 1420 00da F723 movs r3, #247 - 1421 00dc C370 strb r3, [r0, #3] - 449:Src/usbd_midi_if.c **** break; - 1422 .loc 1 449 0 - 1423 00de 0421 movs r1, #4 - 1424 00e0 FFF7FEFF bl sendMidiMessage - 1425 .LVL117: - 450:Src/usbd_midi_if.c **** default: - 1426 .loc 1 450 0 - 1427 00e4 2EE0 b .L126 - 1428 .L128: - 433:Src/usbd_midi_if.c **** msg_buf[1] = 0xF7; - 1429 .loc 1 433 0 - 1430 00e6 3B01 lsls r3, r7, #4 - 1431 00e8 DBB2 uxtb r3, r3 - 1432 00ea 0533 adds r3, r3, #5 - 1433 00ec 01A8 add r0, sp, #4 - 1434 00ee 0370 strb r3, [r0] - 434:Src/usbd_midi_if.c **** msg_buf[2] = msg_buf[3] = 0x00; - 1435 .loc 1 434 0 - 1436 00f0 F723 movs r3, #247 - 1437 00f2 4370 strb r3, [r0, #1] - 435:Src/usbd_midi_if.c **** sendMidiMessage(msg_buf,4); - 1438 .loc 1 435 0 - 1439 00f4 0023 movs r3, #0 - 1440 00f6 C370 strb r3, [r0, #3] - ARM GAS /tmp/ccjHqQBe.s page 37 - - - 1441 00f8 8370 strb r3, [r0, #2] - 436:Src/usbd_midi_if.c **** break; - 1442 .loc 1 436 0 - 1443 00fa 0421 movs r1, #4 - 1444 00fc FFF7FEFF bl sendMidiMessage - 1445 .LVL118: - 437:Src/usbd_midi_if.c **** - 1446 .loc 1 437 0 - 1447 0100 20E0 b .L126 - 1448 .L127: - 440:Src/usbd_midi_if.c **** msg_buf[2] = 0xF7; - 1449 .loc 1 440 0 - 1450 0102 3B01 lsls r3, r7, #4 - 1451 0104 DBB2 uxtb r3, r3 - 1452 0106 0633 adds r3, r3, #6 - 1453 0108 01A8 add r0, sp, #4 - 1454 010a 0370 strb r3, [r0] - 441:Src/usbd_midi_if.c **** msg_buf[3] = 0x00; - 1455 .loc 1 441 0 - 1456 010c F723 movs r3, #247 - 1457 010e 8370 strb r3, [r0, #2] - 442:Src/usbd_midi_if.c **** sendMidiMessage(msg_buf,4); - 1458 .loc 1 442 0 - 1459 0110 0023 movs r3, #0 - 1460 0112 C370 strb r3, [r0, #3] - 443:Src/usbd_midi_if.c **** break; - 1461 .loc 1 443 0 - 1462 0114 0421 movs r1, #4 - 1463 0116 FFF7FEFF bl sendMidiMessage - 1464 .LVL119: - 444:Src/usbd_midi_if.c **** - 1465 .loc 1 444 0 - 1466 011a 13E0 b .L126 - 1467 .LVL120: - 1468 .L130: - 418:Src/usbd_midi_if.c **** if( 0xF7 !=midi_event[cable_num].midi_byte[cnt_length] ){ - 1469 .loc 1 418 0 discriminator 2 - 1470 011c 0136 adds r6, r6, #1 - 1471 .LVL121: - 1472 .L118: - 418:Src/usbd_midi_if.c **** if( 0xF7 !=midi_event[cable_num].midi_byte[cnt_length] ){ - 1473 .loc 1 418 0 is_stmt 0 discriminator 1 - 1474 011e A301 lsls r3, r4, #6 - 1475 0120 1B19 adds r3, r3, r4 - 1476 0122 0C4A ldr r2, .L136+4 - 1477 0124 9B5C ldrb r3, [r3, r2] - 1478 0126 B342 cmp r3, r6 - 1479 0128 9DD9 bls .L115 - 419:Src/usbd_midi_if.c **** if(2 == cnt_remain){ - 1480 .loc 1 419 0 is_stmt 1 - 1481 012a A201 lsls r2, r4, #6 - 1482 012c 1219 adds r2, r2, r4 - 1483 012e 094B ldr r3, .L136+4 - 1484 0130 9B18 adds r3, r3, r2 - 1485 0132 9B19 adds r3, r3, r6 - 1486 0134 5B78 ldrb r3, [r3, #1] - 1487 0136 F72B cmp r3, #247 - ARM GAS /tmp/ccjHqQBe.s page 38 - - - 1488 0138 C4D0 beq .L124 - 420:Src/usbd_midi_if.c **** msg_buf[3] = midi_event[cable_num].midi_byte[cnt_length]; - 1489 .loc 1 420 0 - 1490 013a 022D cmp r5, #2 - 1491 013c B8D0 beq .L135 - 425:Src/usbd_midi_if.c **** } - 1492 .loc 1 425 0 - 1493 013e 6A1C adds r2, r5, #1 - 1494 0140 01A9 add r1, sp, #4 - 1495 0142 8B54 strb r3, [r1, r2] - 1496 .L126: - 456:Src/usbd_midi_if.c **** if(cnt_remain >=3){ - 1497 .loc 1 456 0 - 1498 0144 0135 adds r5, r5, #1 - 1499 .LVL122: - 457:Src/usbd_midi_if.c **** cnt_remain = 0; - 1500 .loc 1 457 0 - 1501 0146 022D cmp r5, #2 - 1502 0148 E8D9 bls .L130 - 458:Src/usbd_midi_if.c **** } - 1503 .loc 1 458 0 - 1504 014a 0025 movs r5, #0 - 1505 .LVL123: - 1506 014c E6E7 b .L130 - 1507 .L137: - 1508 014e C046 .align 2 - 1509 .L136: - 1510 0150 00000000 .word analyzed_status - 1511 0154 00000000 .word midi_event - 1512 .cfi_endproc - 1513 .LFE54: - 1515 .section .text.midiProcess,"ax",%progbits - 1516 .align 1 - 1517 .global midiProcess - 1518 .syntax unified - 1519 .code 16 - 1520 .thumb_func - 1521 .fpu softvfp - 1523 midiProcess: - 1524 .LFB55: - 468:Src/usbd_midi_if.c **** - 469:Src/usbd_midi_if.c **** void midiProcess(){ - 1525 .loc 1 469 0 - 1526 .cfi_startproc - 1527 @ args = 0, pretend = 0, frame = 0 - 1528 @ frame_needed = 0, uses_anonymous_args = 0 - 1529 0000 70B5 push {r4, r5, r6, lr} - 1530 .LCFI15: - 1531 .cfi_def_cfa_offset 16 - 1532 .cfi_offset 4, -16 - 1533 .cfi_offset 5, -12 - 1534 .cfi_offset 6, -8 - 1535 .cfi_offset 14, -4 - 1536 .LVL124: - 1537 .LBB6: - 470:Src/usbd_midi_if.c **** - 471:Src/usbd_midi_if.c **** for(uint32_t cable_num=0; cable_num