Beispiel #1
0
int main(int argc, char *argv[])
{
	const char *dev;
	int port;
	int mode;

	if (argc < 3) {
		usage(argv[0]);
		exit(1);
	}

	dev = argv[1];
	port = get_port(argv[2]);
	/* default to telnet mode */
	if (argc == 3)
		mode = 1;
	else
		mode = get_mode(argv[3]);

	signal(SIGPIPE, SIG_IGN);
	signal(SIGTERM, do_stop);
	ser = ser_new(dev, port, mode);
	if (ser == NULL)
		return -1;
	ser_start(ser);

	return 0;
}
Beispiel #2
0
int main(int argc, char *argv[])
{

	signal(SIGPIPE, SIG_IGN);
	signal(SIGTERM, do_stop);
	ser = ser_new("/dev/ttyUSB0", 4307, 1);
	if (ser == NULL)
		return -1;

	ser_start(ser);

	return 0;
}
Beispiel #3
0
static
void sarm_setup_serport (simarm_t *sim, ini_sct_t *ini)
{
	unsigned      i;
	unsigned long addr;
	unsigned      irq;
	unsigned      multichar;
	const char    *driver;
	const char    *chip;
	ini_sct_t     *sct;
	serport_t     *ser;
	e8250_t       *uart;

	sim->serport[0] = NULL;
	sim->serport[1] = NULL;

	i = 0;
	sct = NULL;

	while ((i < 2) && (sct = ini_next_sct (ini, sct, "serial")) != NULL) {
		ini_get_uint32 (sct, "address", &addr, 0xc0030000);
		ini_get_uint16 (sct, "irq", &irq, 2);
		ini_get_uint16 (sct, "multichar", &multichar, 1);
		ini_get_string (sct, "uart", &chip, "8250");
		ini_get_string (sct, "driver", &driver, NULL);

		pce_log_tag (MSG_INF, "UART:",
			"n=%u addr=0x%08lx irq=%u uart=%s multi=%u driver=%s\n",
			i, addr, irq, chip, multichar,
			(driver == NULL) ? "<none>" : driver
		);

		ser = ser_new (addr, 2);

		if (ser == NULL) {
			pce_log (MSG_ERR,
				"*** serial port setup failed [%08lX/%u -> %s]\n",
				addr, irq, (driver == NULL) ? "<none>" : driver
			);
		}
		else {
			sim->serport[i] = ser;

			uart = ser_get_uart (ser);

			if (driver != NULL) {
				if (ser_set_driver (ser, driver)) {
					pce_log (MSG_ERR,
						"*** can't open driver (%s)\n",
						driver
					);
				}
			}

			e8250_set_buf_size (uart, 256, 256);
			e8250_set_multichar (uart, multichar, multichar);

			if (e8250_set_chip_str (uart, chip)) {
				pce_log (MSG_ERR,
					"*** unknown UART chip (%s)\n", chip
				);
			}

			e8250_set_irq_fct (uart,
				sim->intc, ict_get_irq_f (sim->intc, irq)
			);

			mem_add_blk (sim->mem, ser_get_reg (ser), 0);

			i += 1;
		}
	}
}