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
1 changed files with 7 additions and 2 deletions

View File

@ -40,12 +40,17 @@ void serialWrite(serialPort_t *instance, uint8_t 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) {
instance->vTable->writeBuf(instance, data, count);
} else {
for (uint8_t *p = data; count > 0; count--, p++) {
while (!serialTxBytesFree(instance)) {
};
serialWrite(instance, *p);
}
}
@ -81,7 +86,7 @@ void serialSetMode(serialPort_t *instance, portMode_t 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);
}