Hello Adrian,
According to what you are describing, it seems to be a nio_serial bug.
I have made a quick review on nio_serial files and NIO_SERIAL_WAITING flag is set to non-zero value when you are wanting to write to Serial port when there is no available space on internal Tx Buffer (buffer is full), in this case, this flag is set and serial driver is waiting for "WAIT_NUM" spaces to be freed in order to resume the serial writing procedure.
In tx callback, when one character is sent, driver decreases the pending "WAIT_NUM" bytes and check if this variable is 0, when this happens, all spaces needed are already freed and now, previous writing request to serial port can be resumed.
I would like to see the moment when "WAIT_NUM" variable is zero and then it is decreased by transmission callback. (I am expecting this variable to be 1 when semaphore is posted) so I would like to ask you your code to reach the condition where tx buffer is full and NIO_SERIAL_WAITING flag is set. could you please be so kind to attach your code, besides, provide additional information such as IDE (kds, iar, etc) and ksdk version?
Best Regards,
Isaac