Code: Select all
#include <uart.h>
#include <stdio.h>
#include <xcore/parallel.h>
#include <xcore/port.h>
#include <xcore/channel_streaming.h>
// Forward declare uart_rx_streaming from lib_uart as a "job"??
// Change port, and chanend to unsigned int
DECLARE_JOB(uart_tx_streaming, (unsigned int, unsigned int, int));
// Declare also this with changing from XC types to C types
void uart_tx_streaming_write_byte(unsigned int c, uint8_t data);
#define TICKS_PER_BYTE 100
DECLARE_JOB(uart_app, (chanend_t));
void uart_app(chanend_t chan)
{
printf("Starting uart tx\n");
uint8_t byte = 0;
while(1) {
uart_tx_streaming_write_byte(chan, byte);
printf("Sucessfully sent byte: 0x%X\n", byte);
byte += 1;
}
}
int main(void) {
streaming_channel_t chan = s_chan_alloc();
port_t p_uart_rx = XS1_PORT_1A;
port_enable(p_uart_rx);
PAR_JOBS(
PJOB(uart_app, (chan.end_b)),
PJOB(uart_tx_streaming, ( p_uart_rx, chan.end_a, TICKS_PER_BYTE))
);
s_chan_free(chan);
port_disable(p_uart_rx);
return 0;
}
[1] https://github.com/erlingrj/lib_uart/tree/c-example
[2] https://www.xmos.ai/documentation/XM-01 ... lling.html