From 2f8beb8d88ff98025b87e4a1aac350096d5ed6ac Mon Sep 17 00:00:00 2001
From: Damien George <damien.p.george@gmail.com>
Date: Mon, 24 Mar 2014 12:23:03 +0000
Subject: [PATCH] stmhal: Fix bug with USB CDC transmit buffer wrap around.

---
 stmhal/usbd_cdc_interface.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/stmhal/usbd_cdc_interface.c b/stmhal/usbd_cdc_interface.c
index a62f8a801..c441e9c61 100644
--- a/stmhal/usbd_cdc_interface.c
+++ b/stmhal/usbd_cdc_interface.c
@@ -363,7 +363,7 @@ void USBD_CDC_SetInterrupt(int chr, void *data) {
 void USBD_CDC_Tx(const char *str, uint32_t len) {
     for (int i = 0; i < len; i++) {
         uint timeout = 200;
-        while (UserTxBufPtrIn + 1 == UserTxBufPtrOut) {
+        while (((UserTxBufPtrIn + 1) & (APP_TX_DATA_SIZE - 1)) == UserTxBufPtrOut) {
             if (timeout-- == 0) {
                 break;
             }
-- 
GitLab