OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [orpmon/] [common/] [common.c] - Diff between revs 812 and 816

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 812 Rev 816
Line 1... Line 1...
#include "common.h"
#include "common.h"
#include "uart.h"
#include "uart.h"
#include "screen.h"
#include "screen.h"
#include "support.h"
#include "support.h"
#include <ctype.h>
 
 
 
#define MAX_COMMANDS  100
#define MAX_COMMANDS  100
 
 
bd_t bd;
bd_t bd;
 
 
Line 15... Line 14...
  const char *params;
  const char *params;
  const char *help;
  const char *help;
  int (*func)(int argc, char *argv[]);
  int (*func)(int argc, char *argv[]);
} command[MAX_COMMANDS];
} command[MAX_COMMANDS];
 
 
/* Parses hex or decimal number */
 
unsigned long strtoul (const char *str, char **endptr, int base)
 
{
 
  unsigned long number = 0;
 
  char *pos = (char *) str;
 
  char *fail_char = (char *) str;
 
 
 
  while (isspace(*pos)) pos++;  /* skip leading whitespace */
 
 
 
  if ((base == 16) && (*pos == '0')) { /* handle option prefix */
 
    ++pos;
 
    fail_char = pos;
 
    if ((*pos == 'x') || (*pos == 'X')) ++pos;
 
  }
 
 
 
  if (base == 0) {               /* dynamic base */
 
    base = 10;          /* default is 10 */
 
    if (*pos == '0') {
 
      ++pos;
 
      base -= 2;                /* now base is 8 (or 16) */
 
      fail_char = pos;
 
      if ((*pos == 'x') || (*pos == 'X')) {
 
        base += 8;      /* base is 16 */
 
        ++pos;
 
      }
 
    }
 
  }
 
 
 
  if ((base < 2) || (base > 36)) goto done; /* illegal base */
 
 
 
  while (1) {
 
    int digit = 40;
 
    if ((*pos >= '0') && (*pos <= '9')) {
 
        digit = (*pos - '0');
 
    } else if (*pos >= 'a') {
 
        digit = (*pos - 'a' + 10);
 
    } else if (*pos >= 'A') {
 
        digit = (*pos - 'A' + 10);
 
    } else break;
 
 
 
    if (digit >= base) break;
 
 
 
    fail_char = ++pos;
 
    number = number * base + digit;
 
  }
 
 
 
done:
 
  if (endptr) *endptr = fail_char;
 
  return number;
 
}
 
 
 
void putc (const char c)
void putc (const char c)
{
{
  debug ("getc %i, %i = %c\n", bd.bi_console_type, c, c);
  debug ("getc %i, %i = %c\n", bd.bi_console_type, c, c);
  switch (bd.bi_console_type) {
  switch (bd.bi_console_type) {
  case CT_NONE:
  case CT_NONE:
Line 257... Line 205...
#endif /* HELP_ENABLED */
#endif /* HELP_ENABLED */
 
 
void module_cpu_init (void);
void module_cpu_init (void);
void module_memory_init (void);
void module_memory_init (void);
void module_eth_init (void);
void module_eth_init (void);
//void module_dhry_init (void);
void module_dhry_init (void);
void module_camera_init (void);
void module_camera_init (void);
void module_tftp_init (void);
void module_load_init (void);
void tick_init(void);
void tick_init(void);
 
 
/* List of all initializations */
/* List of all initializations */
void mon_init (void)
void mon_init (void)
{
{
 
  /* Set defaults */
 
  global.erase_method = 2; /* as needed */
 
  global.src_addr =
 
  global.dst_addr = FLASH_BASE_ADDR;
 
 
 
  /* Init modules */
  module_cpu_init ();
  module_cpu_init ();
  module_memory_init ();
  module_memory_init ();
  module_eth_init ();
  module_eth_init ();
//  module_dhry_init ();
  module_dhry_init ();
  module_camera_init ();
  module_camera_init ();
  module_tftp_init ();
  module_load_init ();
 
 
//  tick_init();
//  tick_init();
}
}
 
 
/* Main shell loop */
/* Main shell loop */
int main(int argc, char **argv)
int main(int argc, char **argv)

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.