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)
|