From 6ab94e0b318884bbcb95e2ea3835f951502e1d99 Mon Sep 17 00:00:00 2001 From: jaseg Date: Wed, 14 Oct 2020 12:47:28 +0200 Subject: Move firmware into subdirectory --- fw/midi-dials/build/usbd_midi_if.lst | 2430 ++++++++++++++++++++++++++++++++++ 1 file changed, 2430 insertions(+) create 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 new file mode 100644 index 0000000..1fe0750 --- /dev/null +++ b/fw/midi-dials/build/usbd_midi_if.lst @@ -0,0 +1,2430 @@ +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