URL
https://opencores.org/ocsvn/qaz_libs/qaz_libs/trunk
Subversion Repositories qaz_libs
Compare Revisions
- This comparison shows the changes necessary to convert path
/qaz_libs
- from Rev 17 to Rev 16
- ↔ Reverse comparison
Rev 17 → Rev 16
/trunk/cli/memtest.c
219,4 → 219,3
return (NULL); |
|
} /* memTestDevice() */ |
|
/trunk/cli/sys_cmd.c
1,5 → 1,3
/*-----------------------------------------------------------*/ |
|
#include <stdio.h> |
#include <stdlib.h> |
#include <string.h> |
7,49 → 5,15
|
|
/*-----------------------------------------------------------*/ |
static unsigned int cli_no_of_commands; |
|
void cli_init( void ) |
{ |
int i; |
|
for(i = 0; cli_commands[i].func != NULL; i++); |
|
cli_no_of_commands = 1; |
} |
|
|
/*-----------------------------------------------------------*/ |
static int cmd_cmp( const void *e1, const void *e2 ) |
{ |
struct cli_cmd_tab_t *p_cmd_1 = (struct cli_cmd_tab_t *)e1; |
struct cli_cmd_tab_t *p_cmd_2 = (struct cli_cmd_tab_t *)e2; |
|
return strncmp( p_cmd_1->cmd, p_cmd_2->cmd, MAX_CMD_LENGTH ); |
} |
|
|
/*-----------------------------------------------------------*/ |
cli_cmd_tab_t *cli_find_command( cli_cmd_tab_t *cmd_to_check ) |
{ |
struct cli_cmd_tab_t *cli_cmd; |
|
cli_cmd = (struct cli_cmd_tab_t *) bsearch( cmd_to_check, cli_commands, cli_no_of_commands, sizeof(struct cli_cmd_tab_t), cmd_cmp ); |
|
return(cli_cmd); |
} |
|
|
/*-----------------------------------------------------------*/ |
static char func_help( const unsigned char argc, const char *argv[] ) |
{ |
unsigned int i; |
|
PRINTF_MACRO( "Usage: cmd <arg1> <arg2> <arg3> ...\r\n" ); |
PRINTF_MACRO( "\r\n" ); |
PRINTF_MACRO( "Commands:\r\n" ); |
iprintf( "Usage: cmd <arg1> <arg2> <arg3> ...\r\n" ); |
iprintf( "\r\n" ); |
iprintf( "Commands:\r\n" ); |
|
for( i = 0; i < cli_no_of_commands; i++ ) |
for( i = 0; i < NO_OF_COMMANDS; i++ ) |
puts( cli_commands[i].help_string ); |
|
return EXIT_SUCCESS; |
61,7 → 25,7
{ |
volatile unsigned int *address = (volatile unsigned int *)( strtoul( argv[1], (char **)NULL, 16 ) ); |
|
PRINTF_MACRO( "peek: %s => 0x%08x \r\n", argv[1], *address ); |
iprintf( "peek: %s => 0x%08x \r\n", argv[1], *address ); |
|
return EXIT_SUCCESS; |
} |
75,7 → 39,7
|
*((volatile unsigned int *)address) = value; |
|
PRINTF_MACRO( "poke: %s <= %s \r\n", argv[1], argv[2] ); |
iprintf( "poke: %s <= %s \r\n", argv[1], argv[2] ); |
|
return EXIT_SUCCESS; |
} |
91,32 → 55,32
|
if( argc != 3 || address == NULL || nBytes == 0 ) |
{ |
PRINTF_MACRO( "memtest: bad args \r\n" ); |
iprintf( "memtest: bad args \r\n" ); |
return( EXIT_FAILURE ); |
} |
|
PRINTF_MACRO( "running memTestDataBus() ... " ); |
iprintf( "running memTestDataBus() ... " ); |
|
if( memTestDataBus( address ) ) |
PRINTF_MACRO( "FAILED!!!\r\n" ); |
iprintf( "FAILED!!!\r\n" ); |
else |
PRINTF_MACRO( "PASSED\r\n" ); |
iprintf( "PASSED\r\n" ); |
|
|
PRINTF_MACRO( "running memTestAddressBus() ... " ); |
iprintf( "running memTestAddressBus() ... " ); |
|
if( memTestAddressBus( address, nBytes ) ) |
PRINTF_MACRO( "FAILED!!!\r\n" ); |
iprintf( "FAILED!!!\r\n" ); |
else |
PRINTF_MACRO( "PASSED\r\n" ); |
iprintf( "PASSED\r\n" ); |
|
|
PRINTF_MACRO( "running memTestDevice() ... " ); |
iprintf( "running memTestDevice() ... " ); |
|
if( memTestDevice( address, nBytes ) ) |
PRINTF_MACRO( "FAILED!!!\r\n" ); |
iprintf( "FAILED!!!\r\n" ); |
else |
PRINTF_MACRO( "PASSED\r\n" ); |
iprintf( "PASSED\r\n" ); |
|
return EXIT_SUCCESS; |
} |
123,14 → 87,13
|
|
/*-----------------------------------------------------------*/ |
/* put in alphabetical order by command name */ |
struct cli_cmd_tab_t cli_commands[] = |
struct cli_cmd_tab_t cli_commands[NO_OF_COMMANDS] = |
{ |
{ "help", func_help, " help print this help message\r" }, |
{ "memtest", func_memtest, " memtest memtest 0x<base_address> 0x<size>\r" }, |
{ "peek", func_peek, " peek peek <address>\r" }, |
{ "poke", func_poke, " poke poke <address> <value> \r" }, |
{ "", NULL, NULL } |
{ "help", func_help, "\t help\t\t print this help message\r" }, |
{ "memtest", func_memtest, "\t memtest\t memtest 0x<base_address> 0x<size>\r" }, |
{ "peek", func_peek, "\t peek\t\t peek <address>\r" }, |
{ "poke", func_poke, "\t poke\t\t poke <address> <value> \r" }, |
{ "ssp0", func_ssp0, "\t ssp0\t\t ssp0 <command> \r" }, |
}; |
|
|
/trunk/cli/memtest.h
38,4 → 38,4
datum * memTestDevice(volatile datum * baseAddress, unsigned long nBytes); |
|
|
#endif /* _memtest_h */ |
#endif /* _memtest_h */ |
/trunk/cli/sys_cli.c
6,6 → 6,7
#include <unistd.h> |
|
#include "sys_cmd.h" |
#include "sys_drivers.h" |
#include "sys_error.h" |
|
#define ASCII_ESC '\x1b' |
12,6 → 13,16
|
|
/*-----------------------------------------------------------*/ |
static int cmd_cmp( const void *e1, const void *e2 ) |
{ |
struct cli_cmd_tab_t *p_cmd_1 = (struct cli_cmd_tab_t *)e1; |
struct cli_cmd_tab_t *p_cmd_2 = (struct cli_cmd_tab_t *)e2; |
|
return strncmp( p_cmd_1->cmd, p_cmd_2->cmd, MAX_CMD_LENGTH ); |
} |
|
|
/*-----------------------------------------------------------*/ |
static void send_csi( char c ) |
{ |
putchar( ASCII_ESC ); |
60,8 → 71,6
break; |
|
case '\n': |
*out_ptr = '\0'; |
return( NULL ); |
break; |
|
case '\r': |
160,41 → 169,40
|
|
/*-----------------------------------------------------------*/ |
void sys_cli_task( void ) |
void sys_cli_task( void *pvParameters ) |
{ |
char last_return_value = EXIT_SUCCESS; |
char in_buffer[INPUT_LINE_LENGTH + 1]; |
char out_buffer[INPUT_LINE_LENGTH + 1]; |
char in_buffer[16]; |
char out_buffer[INPUT_LINE_LENGTH]; |
char *cli_ptr; |
struct cli_cmd_tab_t cmd_to_check = { "", NULL, NULL }; |
struct cli_cmd_tab_t cmd_to_check = { "", NULL }; |
unsigned char cli_argc; |
char *cli_argv[MAX_CLI_ARGC]; |
struct cli_cmd_tab_t *cli_cmd; |
unsigned int bytes_read; |
|
cli_init(); |
|
PRINTF_MACRO( "\r\n" ); |
iprintf( "\r\n" ); |
|
for( ;; ) |
{ |
PRINTF_MACRO( "%d > ", last_return_value ); |
iprintf( "%d > ", last_return_value ); |
iprintf( "# " ); |
|
cli_argc = 0; |
last_return_value = EXIT_SUCCESS; |
|
bytes_read = (unsigned int)read( STDIN_FILENO, (void *)in_buffer, sizeof(in_buffer) ); |
bytes_read = (unsigned int)read( FD_UART_2, (void *)in_buffer, sizeof(in_buffer) ); |
cli_ptr = cli_edit_buffer( in_buffer, out_buffer, bytes_read ); |
|
while( cli_ptr != NULL ) |
{ |
bytes_read = (unsigned int)read( STDIN_FILENO, (void *)in_buffer, sizeof(in_buffer) ); |
bytes_read = (unsigned int)read( FD_UART_2, (void *)in_buffer, sizeof(in_buffer) ); |
cli_ptr = cli_edit_buffer( in_buffer, NULL, bytes_read ); |
} |
|
if( out_buffer[0] == '\0' ) |
{ |
PRINTF_MACRO( " NULL String! Command ignored\r\n" ); |
iprintf( "\r\n NULL String! Command ignored\r\n" ); |
last_return_value = EXIT_FAILURE; |
} |
|
203,11 → 211,11
cli_ptr = strtok( out_buffer, " \t" ); |
|
strncpy( cmd_to_check.cmd, out_buffer, MAX_CMD_LENGTH ); |
cli_cmd = cli_find_command( &cmd_to_check ); |
cli_cmd = (struct cli_cmd_tab_t *) bsearch( &cmd_to_check, cli_commands, NO_OF_COMMANDS, sizeof(struct cli_cmd_tab_t), cmd_cmp ); |
|
if ( cli_cmd == NULL ) |
{ |
PRINTF_MACRO( "\r\n Command not found!\r\n" ); |
iprintf( "\r\nCommand not found!\r\n" ); |
last_return_value = EXIT_FAILURE; |
break; |
} |
227,8 → 235,6
} |
} |
|
PRINTF_MACRO( "\r\n" ); |
|
last_return_value = cli_cmd->func( cli_argc, (const char **)cli_argv ); |
break; |
} |
/trunk/cli/sys_cmd.h
5,29 → 5,25
#define _QAZ_SYS_CMD_H_ |
|
#define INPUT_LINE_LENGTH 40 |
#define MAX_CMD_LENGTH 20 |
#define MAX_CMD_LENGTH 11 |
#define MAX_CLI_ARGC 6 |
#define NO_OF_COMMANDS 5 |
|
#include <xil_printf.h> |
|
#define PRINTF_MACRO xil_printf |
// #define PRINTF_MACRO iprintf |
|
typedef char (*cli_cmd_func)( const unsigned char argc, const char * argv[] ); |
|
typedef struct cli_cmd_tab_t |
struct cli_cmd_tab_t |
{ |
char cmd[MAX_CMD_LENGTH]; |
cli_cmd_func func; |
const char *help_string; |
} cli_cmd_tab_t; |
}; |
|
extern struct cli_cmd_tab_t cli_commands[]; |
extern struct cli_cmd_tab_t cli_commands[NO_OF_COMMANDS]; |
|
|
/*-----------------------------------------------------------*/ |
extern void sys_cli_task(void); |
extern cli_cmd_tab_t *cli_find_command( cli_cmd_tab_t *cmd_to_check ); |
extern void cli_init( void ); |
extern char func_ssp0( const unsigned char argc, const char *argv[] ); |
|
|
#endif // _QAZ_SYS_CMD_H_ |
/trunk/cli/sys_error.c
2,7 → 2,7
|
void sys_error_fatal( unsigned int error ) |
{ |
// (*( (volatile unsigned int *) (0x8000003c) )) = error; // write to scratch pad reg in FPGA |
(*( (volatile unsigned int *) (0x8000003c) )) = error; // write to scratch pad reg in FPGA |
|
while(1) {}; |
} |
/trunk/cli/sys_error.h
1,8 → 1,5
/*-----------------------------------------------------------*/ |
|
#ifndef _QAZ_SYS_ERROR_H_ |
#define _QAZ_SYS_ERROR_H_ |
|
typedef enum |
{ |
FATAL_ERROR_CLI = 0, |
13,5 → 10,3
/*-----------------------------------------------------------*/ |
void sys_error_fatal( unsigned int error ); |
|
#endif // _QAZ_SYS_ERROR_H_ |
|