1
0
Fork 0
mirror of https://github.com/betaflight/betaflight.git synced 2025-07-25 17:25:20 +03:00

Prevent serial tx buffer overflow.

Note: this is likely not the best solution, we can investigate further
in due course.

See  #1753
This commit is contained in:
Dominic Clifton 2016-02-02 18:28:42 +01:00 committed by borisbstyle
parent 2ca14ed3a6
commit c8c5eaf677

View file

@ -40,12 +40,17 @@ void serialWrite(serialPort_t *instance, uint8_t ch)
instance->vTable->serialWrite(instance, ch); instance->vTable->serialWrite(instance, ch);
} }
void serialWriteBuf(serialPort_t *instance, void *data, int count)
void serialWriteBuf(serialPort_t *instance, uint8_t *data, int count)
{ {
if (instance->vTable->writeBuf) { if (instance->vTable->writeBuf) {
instance->vTable->writeBuf(instance, data, count); instance->vTable->writeBuf(instance, data, count);
} else { } else {
for (uint8_t *p = data; count > 0; count--, p++) { for (uint8_t *p = data; count > 0; count--, p++) {
while (!serialTxBytesFree(instance)) {
};
serialWrite(instance, *p); serialWrite(instance, *p);
} }
} }
@ -81,7 +86,7 @@ void serialSetMode(serialPort_t *instance, portMode_t mode)
instance->vTable->setMode(instance, mode); instance->vTable->setMode(instance, mode);
} }
void serialWriteBufShim(void *instance, void *data, int count) void serialWriteBufShim(void *instance, uint8_t *data, int count)
{ {
serialWriteBuf((serialPort_t *)instance, data, count); serialWriteBuf((serialPort_t *)instance, data, count);
} }