Pārlūkot izejas kodu

Merge pull request #457 from FrankBoesing/patch-4

usb.c / interrupt - callbacks use ctz()
main
Paul Stoffregen pirms 4 gadiem
vecāks
revīzija
c96012c48c
Revīzijas autora e-pasta adrese nav piesaistīta nevienam kontam
1 mainītis faili ar 22 papildinājumiem un 0 dzēšanām
  1. +22
    -0
      teensy4/usb.c

+ 22
- 0
teensy4/usb.c Parādīt failu

@@ -245,6 +245,26 @@ static void isr(void)
endpoint0_complete();
}
completestatus &= endpointN_notify_mask;
#if 1
if (completestatus) {

// transmit:
uint32_t tx = completestatus >> 16;
while (tx) {
int p=__builtin_ctz(tx);
run_callbacks(endpoint_queue_head + p * 2 + 1);
tx &= ~(1<<p);
}

// receive:
uint32_t rx = completestatus & 0xffff;
while(rx) {
int p=__builtin_ctz(rx);
run_callbacks(endpoint_queue_head + p * 2);
rx &= ~(1<<p);
};
}
#else
if (completestatus) {
int i; // TODO: optimize with __builtin_ctz()
for (i=2; i <= NUM_ENDPOINTS; i++) {
@@ -256,6 +276,8 @@ static void isr(void)
}
}
}
#endif

}
}
if (status & USB_USBSTS_URI) { // page 3164

Notiek ielāde…
Atcelt
Saglabāt