/***************************************************************************
- * Copyright (C) 2007-2008 by Øyvind Harboe *
+ * Copyright (C) 2007-2009 by Øyvind Harboe *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
#include <stdio.h>
+#ifdef CYGPKG_HAL_NIOS2
+#define ZY1000_SER_DEV "/dev/uart_0"
+#else
+#define ZY1000_SER_DEV "/dev/ser0"
+
+#endif
+
+
#define MAX_IFS 64
#if defined(CYGPKG_NET_FREEBSD_STACK)
#include <tftp_support.h>
int oldopts = fcntl(session, F_GETFL, 0);
fcntl(session, F_SETFL, oldopts | O_NONBLOCK); //
- int serHandle = open("/dev/ser0", O_RDWR | O_NONBLOCK);
+ int serHandle = open(ZY1000_SER_DEV, O_RDWR | O_NONBLOCK);
if (serHandle < 0)
{
close(session);
cyg_thread_resume(zylinjtag_uart_thread_handle);
}
-int handle_uart_command(struct command_context *cmd_ctx, char *cmd,
- char **args, int argc)
+static int zylinjtag_Jim_Command_uart(Jim_Interp *interp, int argc,
+ Jim_Obj * const *argv)
{
static int current_baud = 38400;
- if (argc == 0)
+ if (argc == 1)
{
command_print(cmd_ctx, "%d", current_baud);
- return ERROR_OK;
+ return JIM_OK;
}
- else if (argc != 1)
+ else if (argc != 2)
{
- return ERROR_INVALID_ARGUMENTS;
+ return JIM_ERR;
}
- current_baud = atol(args[0]);
+ long new_baudrate;
+ if (Jim_GetLong(interp, argv[1], &new_baudrate) != JIM_OK)
+ return JIM_ERR;
+
+ current_baud = new_baudrate;
int baud;
switch (current_baud)
int err;
cyg_io_handle_t serial_handle;
- err = cyg_io_lookup("/dev/ser0", &serial_handle);
+ err = cyg_io_lookup(ZY1000_SER_DEV, &serial_handle);
if (err != ENOERR)
{
- LOG_ERROR("/dev/ser0 not found\n");
- return ERROR_FAIL;
+ LOG_ERROR("Could not open serial port\n");
+ return JIM_ERR;
}
err = cyg_io_get_config(serial_handle,
&len);
if (err != ENOERR)
{
- command_print(cmd_ctx, "Failed to get serial port settings %d", err);
- return ERROR_OK;
+ LOG_ERROR("Failed to get serial port settings %d", err);
+ return JIM_ERR;
}
buf.baud = baud;
&len);
if (err != ENOERR)
{
- command_print(cmd_ctx, "Failed to set serial port settings %d", err);
- return ERROR_OK;
+ LOG_ERROR("Failed to set serial port settings %d", err);
+ return JIM_ERR;
}
- return ERROR_OK;
+ return JIM_OK;
}
bool logAllToSerial = false;
#ifdef CYGPKG_PROFILE_GPROF
- register_command(cmd_ctx, NULL, "ecosboard_profile", eCosBoard_handle_eCosBoard_profile_command,
+ COMMAND_REGISTER(cmd_ctx, NULL, "ecosboard_profile", eCosBoard_handle_eCosBoard_profile_command,
COMMAND_ANY, NULL);
#endif
- register_command(cmd_ctx, NULL, "uart", handle_uart_command, COMMAND_ANY,
- "uart <baud> - forward uart on port 5555");
+ Jim_CreateCommand(interp, "uart", zylinjtag_Jim_Command_uart, NULL, NULL);
- int errVal;
- errVal = log_init(cmd_ctx);
- if (errVal != ERROR_OK)
- {
- diag_printf("log_init() failed %d\n", errVal);
- exit(-1);
- }
+
+ log_init();
set_log_output(cmd_ctx, log);