You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
1.4 KiB
58 lines
1.4 KiB
#include "ax8052.h"
|
|
|
|
#include "libmfdbglink.h"
|
|
#define uart_poll dbglink_poll
|
|
#define uart_txidle dbglink_txidle
|
|
#define uart_txfree dbglink_txfree
|
|
#define uart_rxcount dbglink_rxcount
|
|
#define uart_wait_txdone dbglink_wait_txdone
|
|
#define uart_wait_txfree dbglink_wait_txfree
|
|
#define uart_wait_rxcount dbglink_wait_rxcount
|
|
#define uart_rxpeek dbglink_rxpeek
|
|
#define uart_txpokehex dbglink_txpokehex
|
|
#define uart_txpoke dbglink_txpoke
|
|
#define uart_rxadvance dbglink_rxadvance
|
|
#define uart_txadvance dbglink_txadvance
|
|
#define uart_rx dbglink_rx
|
|
#define uart_tx dbglink_tx
|
|
#define uart_writestr dbglink_writestr
|
|
#define uart_writehexu16 dbglink_writehexu16
|
|
#define uart_writehexu32 dbglink_writehexu32
|
|
#define uart_writeu16 dbglink_writeu16
|
|
#define uart_writeu32 dbglink_writeu32
|
|
|
|
__reentrantb void uart_wait_txfree(uint8_t v) __reentrant
|
|
{
|
|
uint8_t iesave = (IE & 0x80);
|
|
for (;;) {
|
|
EA = 0;
|
|
if (uart_txfree() >= v)
|
|
break;
|
|
if (!uart_poll())
|
|
wtimer_standby();
|
|
IE |= iesave;
|
|
}
|
|
IE |= iesave;
|
|
}
|
|
|
|
__reentrantb void uart_wait_txdone(void) __reentrant
|
|
{
|
|
uint8_t iesave = (IE & 0x80);
|
|
for (;;) {
|
|
EA = 0;
|
|
if (uart_txidle())
|
|
break;
|
|
if (!uart_poll())
|
|
wtimer_standby();
|
|
IE |= iesave;
|
|
}
|
|
IE |= iesave;
|
|
}
|
|
|
|
__reentrantb void uart_tx(uint8_t v) __reentrant
|
|
{
|
|
uart_wait_txfree(1);
|
|
uart_txpoke(0, v);
|
|
uart_txadvance(1);
|
|
}
|