From b7fce4207fc8b3a95d83ea846a3caf6e513f26a0 Mon Sep 17 00:00:00 2001 From: Cristian Maglie Date: Tue, 21 Aug 2012 12:50:12 +0200 Subject: [PATCH] Fixed USB-CDC buffering. Now serial output performs much better. --- .../arduino/sam/cores/arduino/USB/CDC.cpp | 1 - .../arduino/sam/cores/arduino/USB/USBCore.cpp | 6 ++++++ .../sam/system/libsam/source/uotghs_device.c | 2 +- .../arduino_due_x/libsam_sam3x8e_gcc_rel.a | Bin 86052 -> 86056 bytes 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/hardware/arduino/sam/cores/arduino/USB/CDC.cpp b/hardware/arduino/sam/cores/arduino/USB/CDC.cpp index 64271b1f8..3c4f9feaf 100644 --- a/hardware/arduino/sam/cores/arduino/USB/CDC.cpp +++ b/hardware/arduino/sam/cores/arduino/USB/CDC.cpp @@ -228,7 +228,6 @@ size_t Serial_::write(uint8_t c) if (r > 0) { - USBD_Flush(CDC_TX); return r; } else { diff --git a/hardware/arduino/sam/cores/arduino/USB/USBCore.cpp b/hardware/arduino/sam/cores/arduino/USB/USBCore.cpp index 3b4a2ced4..61113c20b 100644 --- a/hardware/arduino/sam/cores/arduino/USB/USBCore.cpp +++ b/hardware/arduino/sam/cores/arduino/USB/USBCore.cpp @@ -397,6 +397,12 @@ static void USB_ISR(void) udd_ack_fifocon(CDC_RX); } + + if (Is_udd_sof()) + { + udd_ack_sof(); + USBD_Flush(CDC_TX); + } #endif // EP 0 Interrupt diff --git a/hardware/arduino/sam/system/libsam/source/uotghs_device.c b/hardware/arduino/sam/system/libsam/source/uotghs_device.c index 23e815ccb..dff259658 100644 --- a/hardware/arduino/sam/system/libsam/source/uotghs_device.c +++ b/hardware/arduino/sam/system/libsam/source/uotghs_device.c @@ -115,7 +115,7 @@ void UDD_Attach(void) // Enable USB line events udd_enable_reset_interrupt(); - //udd_enable_sof_interrupt(); + udd_enable_sof_interrupt(); cpu_irq_restore(flags); } diff --git a/hardware/arduino/sam/variants/arduino_due_x/libsam_sam3x8e_gcc_rel.a b/hardware/arduino/sam/variants/arduino_due_x/libsam_sam3x8e_gcc_rel.a index a25e77ed9f1b5ddfa3ff8476b525b03973455b54..8488d4ee5e60c4cffafb4b6aaf6a382661762bf9 100644 GIT binary patch delta 1070 zcmb`FUr19?9LLY^{+ZLP-B9nHTe-WrT%x4n3IoYeR;EQh^k7i93PEatnne(mg%E@= z@d#(cf?<E9mq4)|eOM(*VH#ohvM6wpK|<%;J7xE+haL{+b3XU`JLh*UCms`@ z#l%6UWxv1fpuhHodrY|7hM?*nM<9gY|BluZTC;eoILGLxT1z_TIqiwt!DmbjPC8}n zlXoR=OH7R@+EUfU@-2~cDq8#55?7XxwMRF7w#+Tby#OfM;)9hOllU6GW;KbP$niXr zm>UV3OYV=Y+B2ur>WvM(xwJh~f+t7pTEV*;;$}b_oV%K{xzN*&#iu(mqM8bNjZ}PB z_KAsDF3fW#Gn@|}&E}yEoI=(%a$>pwx;KBA-WPwM#*aUH%b}3mR^Uh7&X(fNo>!Br z?P26`1Z~al*O66C_XVcu>^Qcq<-@vQmC}8ue<$so)OXo~RyA@#s7u7`5Vz!p6ojk@ zp-LQ%x=6?cdvklKs@By~)Wu1Fr3M+xk0pqcZ!Yk0LBO$qOuQ;cTo>SS~)MIPE;iqm^KNe5GfJXH!A^?(f)$V;Z`d8{5$$Qo12 zL@cGMi`ScOET!A`^Z0p#OhSxfl%p~krVJ@E%AzxdT4pLu)|gs1s{LMCkuTt>LozwX zxKhw}?PnYi^w!3+c-G*d3Yq+2c!kE*GD}oI=sJg!yFJiI&hG)ArMC#7HNa{~55BWd qNTf0dLQ|r<3|0kbO>|TM;h~9a?1RhM4>QqU1-~TIlZpgj!1fo(yDGN; delta 980 zcmb`_Ur19?90&0GySsB!N++Z3Zi}|L>8d@f$!I}Rd*}~SK?NTY0%rxyFxa#rifHvx zM6~4HOPEYF1UQs?4`$9pesVH7Yl+GE^=@E&i=^u)(RUJLmk)y>~jU zOvaTlQ;p|{x7F*Jv(5;2dpU6ZvmS87>WOo;M^>%yUm0=?Ydcfec$I{EocM?+}_hFzeS*B@-Ds^DvML|p~L6KBht z6sN2vqSaIG&uojOT|9-pM&DlCy9-MRy{uiip)7+OTfM3(4+`bR^_TS}a1-d|jUUPV zl|7{5wXnul$=DwFSS^nlz$BEGDZHN4vKGSS7glJDKkAkOeTPAVcl7YnqvQOaxImWi zG=h~_&F`|$N<51_j4j0WVs(u1DV!pPUKV=XWONCCF?x-LCfe@Fyol$Th|@SoV>an-odvCqfXs;Gr?tSY^IY;2po4Ed;DMn9}X}H?c=!LIOT_t s@fNs7N1Hnirc|s2G6Hm_2AzNkLU6&A%HJpT&;@@qRUdxR2ag;60{)W>&;S4c