git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@15202 27425a3e-05d8-49a3-a47f-9c15f0e5edd8
This commit is contained in:
parent
cc7d41bbd6
commit
fe6602f75f
|
@ -110,6 +110,7 @@ include $(CHIBIOS)/os/rt/rt.mk
|
|||
include $(CHIBIOS)/os/common/ports/ARMv7-M/compilers/GCC/mk/port.mk
|
||||
# VFS files (optional).
|
||||
include $(CHIBIOS)/os/vfs/vfs.mk
|
||||
include $(CHIBIOS)/os/vfs/vfs_syscalls.mk
|
||||
# Auto-build files in ./source recursively.
|
||||
include $(CHIBIOS)/tools/mk/autobuild.mk
|
||||
# Other files (optional).
|
||||
|
|
|
@ -110,6 +110,7 @@ include $(CHIBIOS)/os/rt/rt.mk
|
|||
include $(CHIBIOS)/os/common/ports/ARMv7-M/compilers/GCC/mk/port.mk
|
||||
# VFS files (optional).
|
||||
include $(CHIBIOS)/os/vfs/vfs.mk
|
||||
include $(CHIBIOS)/os/vfs/vfs_syscalls.mk
|
||||
# Auto-build files in ./source recursively.
|
||||
include $(CHIBIOS)/tools/mk/autobuild.mk
|
||||
# Other files (optional).
|
||||
|
|
|
@ -115,14 +115,13 @@ caddr_t _sbrk_r(struct _reent *r, int incr) {
|
|||
}
|
||||
|
||||
__attribute__((used))
|
||||
int _kill(struct _reent *r, int pid, int sig) {
|
||||
int _kill(int pid, int sig) {
|
||||
|
||||
(void) r;
|
||||
(void) pid;
|
||||
(void) sig;
|
||||
|
||||
chSysHalt("kill");
|
||||
abort();
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
|
||||
__attribute__((used))
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#include "chprintf.h"
|
||||
|
||||
#if (SHELL_CMD_FILES_ENABLED == TRUE) || defined(__DOXYGEN__)
|
||||
#include <fcntl.h>
|
||||
#include "vfs.h"
|
||||
#endif
|
||||
|
||||
|
@ -297,6 +298,42 @@ static void cmd_tree(BaseSequentialStream *chp, int argc, char *argv[]) {
|
|||
chHeapFree((void *)nip);
|
||||
}
|
||||
}
|
||||
|
||||
static void cmd_cat(BaseSequentialStream *chp, int argc, char *argv[]) {
|
||||
char *buf = NULL;
|
||||
|
||||
if (argc != 1) {
|
||||
chprintf(chp, "Usage: cat <filename>\r\n");
|
||||
return;
|
||||
}
|
||||
|
||||
do {
|
||||
int fd, n;
|
||||
|
||||
buf= (char *)chHeapAlloc(NULL, 2048);
|
||||
if (buf == NULL) {
|
||||
chprintf(chp, "Out of memory\r\n");
|
||||
break;
|
||||
}
|
||||
|
||||
fd = open(argv[1], O_RDONLY);
|
||||
if(fd == -1) {
|
||||
chprintf(chp, "Cannot open file\r\n");
|
||||
break;
|
||||
}
|
||||
|
||||
while ((n = read(fd, buf, sizeof (buf))) > 0) {
|
||||
chprintf(chp, "%s", buf);
|
||||
}
|
||||
|
||||
(void) close(fd);
|
||||
}
|
||||
while (false);
|
||||
|
||||
if (buf != NULL) {
|
||||
chHeapFree((void *)buf);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/*===========================================================================*/
|
||||
|
@ -327,6 +364,7 @@ const ShellCommand shell_local_commands[] = {
|
|||
#endif
|
||||
#if SHELL_CMD_FILES_ENABLED == TRUE
|
||||
{"tree", cmd_tree},
|
||||
{"cat", cmd_cat},
|
||||
#endif
|
||||
#if SHELL_CMD_TEST_ENABLED == TRUE
|
||||
{"test", cmd_test},
|
||||
|
|
|
@ -62,7 +62,7 @@
|
|||
#endif
|
||||
|
||||
#if !defined(SHELL_CMD_FILES_ENABLED) || defined(__DOXYGEN__)
|
||||
#define SHELL_CMD_FILES_ENABLED FALSE
|
||||
#define SHELL_CMD_FILES_ENABLED TRUE
|
||||
#endif
|
||||
|
||||
#if !defined(SHELL_CMD_TEST_WA_SIZE) || defined(__DOXYGEN__)
|
||||
|
|
|
@ -196,9 +196,8 @@ void _exit(int status) {
|
|||
/***************************************************************************/
|
||||
|
||||
__attribute__((used))
|
||||
int _kill(struct _reent *r, int pid, int sig) {
|
||||
int _kill(int pid, int sig) {
|
||||
|
||||
(void) r;
|
||||
(void) pid;
|
||||
(void) sig;
|
||||
|
||||
|
|
|
@ -191,9 +191,8 @@ void _exit(int status) {
|
|||
/***************************************************************************/
|
||||
|
||||
__attribute__((used))
|
||||
int _kill(struct _reent *r, int pid, int sig) {
|
||||
int _kill(int pid, int sig) {
|
||||
|
||||
(void) r;
|
||||
(void) pid;
|
||||
(void) sig;
|
||||
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
# List of all the ChibiOS/VFS syscall files.
|
||||
VFSSYSSRC := $(CHIBIOS)/os/vfs/various/syscalls.c \
|
||||
|
||||
# Required include directories
|
||||
VFSSYSINC := $(CHIBIOS)/os/vfs/various
|
||||
|
||||
# Shared variables
|
||||
ALLCSRC += $(VFSSYSSRC)
|
||||
ALLINC += $(VFSSYSINC)
|
Loading…
Reference in New Issue