Beispiel #1
0
int main() {
    uart_init(UART_BAUD_SELECT(UART_BAUD_RATE, F_CPU));
    sei();
    uart_puts("begin\r\n");

    nrfInit();

    writeReg(RF_SETUP, SET_RF_SETUP);
    writeAddr(RX_ADDR_P0, SET_RX_ADDR_P0);
    writeAddr(TX_ADDR, SET_TX_ADDR);
    writeReg(DYNPD, SET_DYNPD);
    writeReg(FEATURE, SET_FEATURE);
    writeReg(RF_CH, SET_RF_CH);
    writeReg(CONFIG, SET_CONFIG);

    startRadio();


    uint8_t worked;
    uint8_t size;
    char sendbuffer[] = "Testing 1..2..3.. Testing.";
    size = sizeof (sendbuffer);
    char receivebuffer[33];
    char c;
    char count[10];
    int charbuffer;
    char payloadlength;
    //   uart_puts(sendbuffer);
    worked = transmit(sendbuffer, size);
    if (worked == 1) {
        uart_puts("Transmit Worked!\r\n");
    } else {
        uart_puts("Transmit Failed.\r\n");
    }
    startRx();

    while (1) {
        payloadlength = dynReceive(receivebuffer);
        if (payloadlength > 0) {
            uart_puts("Got something:");
            uart_puts(receivebuffer);
            uart_puts("\r\n");
        } else {
            uart_puts("nothin received\r\n");
        }

        c = uart_getc();
        if (!(c & UART_NO_DATA)) {
            uart_putc(c);
        }
        printRegisters();
        _delay_ms(2000);
    }


}
Beispiel #2
0
/**
 * @brief           Initialize DPDK related functionality
 *
 * @param argc      Number of command line arguments
 * @param argv      Command line arguments array
 * @param ret       Number of processed command line arguments
 *
 * @return          true if success and false otherwice
 */
bool DPDKAdapter::init(int& argc, char**& argv)
{
    qDebug("Initializing DPDK");

    long unsigned int nr_hugepages = 0;
    parse_sysfs_value("/proc/sys/vm/nr_hugepages", &nr_hugepages);
    if(nr_hugepages == 0)
    {
        qCritical("No huge pages found");
        return false;
    }

    int ret = rte_eal_init(argc, argv);
    if(ret < 0)
    {
        qCritical("Invalid EAL arguments");
        return false;
    }
    
    argc -= ret;
    argv += ret;

    if(!initializeDevs())
    {
        qCritical("Could not initialize devices");
        return false;
    }

    portTxCoreMap(0, 1);
    portTxCoreMap(1, 2);

    portRxCoreMap(0, 1);
    portRxCoreMap(1, 2);

    startTx();
    startRx();

    rte_eal_mp_remote_launch(lcoreMainRoutine, this, SKIP_MASTER);

    initialized = true;

    return true;
}