diff --git a/baseflight.uvproj b/baseflight.uvproj
index 3d5e23a4f8..e9deda99e6 100755
--- a/baseflight.uvproj
+++ b/baseflight.uvproj
@@ -672,6 +672,11 @@
1
.\src\drv_bma280.c
+
+ drv_serial.c
+ 1
+ .\src\drv_serial.c
+
@@ -1518,6 +1523,11 @@
1
.\src\drv_bma280.c
+
+ drv_serial.c
+ 1
+ .\src\drv_serial.c
+
@@ -2548,6 +2558,11 @@
1
.\src\drv_bma280.c
+
+ drv_serial.c
+ 1
+ .\src\drv_serial.c
+
diff --git a/src/drv_serial.c b/src/drv_serial.c
index 234bb55947..35c8060362 100644
--- a/src/drv_serial.c
+++ b/src/drv_serial.c
@@ -1,6 +1,5 @@
#include "board.h"
-
void serialPrint(serialPort_t *instance, const char *str)
{
uint8_t ch;
@@ -12,4 +11,30 @@ void serialPrint(serialPort_t *instance, const char *str)
inline uint32_t serialGetBaudRate(serialPort_t *instance)
{
return instance->baudRate;
-}
\ No newline at end of file
+}
+
+inline void serialWrite(serialPort_t *instance, uint8_t ch)
+{
+ instance->vTable->serialWrite(instance, ch);
+}
+
+inline uint8_t serialTotalBytesWaiting(serialPort_t *instance)
+{
+ return instance->vTable->serialTotalBytesWaiting(instance);
+}
+
+inline uint8_t serialRead(serialPort_t *instance)
+{
+ return instance->vTable->serialRead(instance);
+}
+
+inline void serialSetBaudRate(serialPort_t *instance, uint32_t baudRate)
+{
+ instance->vTable->serialSetBaudRate(instance, baudRate);
+}
+
+inline bool isSerialTransmitBufferEmpty(serialPort_t *instance)
+{
+ return instance->vTable->isSerialTransmitBufferEmpty(instance);
+}
+
diff --git a/src/drv_serial.h b/src/drv_serial.h
index 8643b3b4c4..de3d674385 100644
--- a/src/drv_serial.h
+++ b/src/drv_serial.h
@@ -39,31 +39,10 @@ struct serialPortVTable {
bool (*isSerialTransmitBufferEmpty)(serialPort_t *instance);
};
-static inline void serialWrite(serialPort_t *instance, uint8_t ch)
-{
- instance->vTable->serialWrite(instance, ch);
-}
-
-static inline uint8_t serialTotalBytesWaiting(serialPort_t *instance)
-{
- return instance->vTable->serialTotalBytesWaiting(instance);
-}
-
-static inline uint8_t serialRead(serialPort_t *instance)
-{
- return instance->vTable->serialRead(instance);
-}
-
-static inline void serialSetBaudRate(serialPort_t *instance, uint32_t baudRate)
-{
- instance->vTable->serialSetBaudRate(instance, baudRate);
-}
-
-static inline bool isSerialTransmitBufferEmpty(serialPort_t *instance)
-{
- return instance->vTable->isSerialTransmitBufferEmpty(instance);
-}
-
+inline void serialWrite(serialPort_t *instance, uint8_t ch);
+inline uint8_t serialTotalBytesWaiting(serialPort_t *instance);
+inline uint8_t serialRead(serialPort_t *instance);
+inline void serialSetBaudRate(serialPort_t *instance, uint32_t baudRate);
+inline bool isSerialTransmitBufferEmpty(serialPort_t *instance);
void serialPrint(serialPort_t *instance, const char *str);
uint32_t serialGetBaudRate(serialPort_t *instance);
-
diff --git a/src/main.c b/src/main.c
index 84f0997d3d..033d49c59b 100755
--- a/src/main.c
+++ b/src/main.c
@@ -19,7 +19,7 @@ static void _putc(void *p, char c)
int fputc(int c, FILE *f)
{
// let DMA catch up a bit when using set or dump, we're too fast.
- while (!isUartTransmitEmpty(core.mainport));
+ while (!isSerialTransmitBufferEmpty(core.mainport));
serialWrite(core.mainport, c);
return c;
}