I am using the MRAA library in some of my projects for the edison. Currently specifically for using SPI and GPIO pins for the ILI9341 TFT display (Adafruit 2.8" TFT breakout in this case).
Now starting to work with an XBee that is on an Seedstudio XBee shield, which has TX/RX on pins 0 and 1 (Edison Arduino). So I thought I would use the UART code in mraa to at least initialize the IO Pins associated with the UART. So I tried calling mraa_uart_init(0);
I was not sure it was working correctly as the call returned a NULL pointer. So I took a look through the code. What I think I found, is the mraa information for the uart is not the the Edison board (intel_edison_fab_c.c) but is in the intel_galileo_rev_d.c. That is in the galileo file you see things like:
mraa_board_t*
mraa_intel_galileo_rev_d()
{
mraa_board_t* b = (mraa_board_t*) malloc(sizeof(mraa_board_t));
if (b == NULL)
return NULL;
b->phy_pin_count = 20;
b->gpio_count = 14;
b->aio_count = 6;
b->uart_dev_count = 2;
...
b->def_uart_dev = 0;
b->uart_dev[0].rx = 0;
b->uart_dev[0].tx = 1;
b->uart_dev[1].rx = -1;
b->uart_dev[1].tx = -1;
But as I mentioned I don't see any of this information defined, so the mraa_uart_init call fails.