Browse Source

from bbb port

pull/1/head
Rafael Zurita 6 years ago
parent
commit
280bd210bb
  1. 13
      include/shell.h
  2. 3
      include/shprototypes.h
  3. 1
      shell/shell.c
  4. 3
      system/initialize.c
  5. 5
      xinu-avr-port.txt

13
include/shell.h

@ -1,11 +1,11 @@
/* shell.h - Declarations and constants used by the Xinu shell */
/* avr specific values. Original saved under orig/ folder */
/* Size constants */
#define SHELL_BUFLEN TY_IBUFLEN+1 /* Length of input buffer */
// RAFA #define SHELL_MAXTOK 32 /* Maximum tokens per line */
#define SHELL_MAXTOK 5 /* Maximum tokens per line */
// RAFA #define SHELL_CMDSTK 4096 /* Size of stack for process */
#define SHELL_MAXTOK 8 /* Maximum tokens per line */
#define SHELL_CMDSTK 256 /* Size of stack for process */
/* that executes command */
#define SHELL_ARGLEN (SHELL_BUFLEN+SHELL_MAXTOK) /* Argument area */
@ -23,7 +23,7 @@
#define SHELL_BAN5 " / /\\ \\ _| |_ | \\ | | | | | "
#define SHELL_BAN6 " / / \\ \\ | | | | \\ | \\ -- / "
#define SHELL_BAN7 " -- -- ----- - - ---- "
#define SHELL_BAN8 " STM32 Version by Robin Krens "
#define SHELL_BAN8 " "
#define SHELL_BAN9 "------------------------------------------"
#define SHELL_BAN10 "\033[0m\n"
@ -75,7 +75,4 @@ struct cmdent { /* Entry in command table */
};
extern uint32 ncmd;
// RAFA extern const struct cmdent cmdtab[];
extern const struct cmdent cmdtab[] ;
extern const struct cmdent cmdtab[];

3
include/shprototypes.h

@ -34,6 +34,9 @@ extern shellcmd xsh_help (int32, char *[]);
/* in file xsh_kill.c */
extern shellcmd xsh_kill (int32, char *[]);
/* in file xsh_ls.c */
extern shellcmd xsh_ls (int32, char *[]);
/* in file xsh_led.c */
extern shellcmd xsh_led (int32, char *[]);

1
shell/shell.c

@ -274,6 +274,7 @@ process shell (
// RAFA child = create(cmdtab[j].cfunc,
// RAFA SHELL_CMDSTK, SHELL_CMDPRIO,
// RAFA cmdtab[j].cname, 2, ntok, &tmparg);
/* 160 bytes de stack perfecto */
child = create(cmdtab[j].cfunc,
160, SHELL_CMDPRIO,
cmdtab[j].cname, 2, ntok, &tmparg);

3
system/initialize.c

@ -59,7 +59,8 @@ void nullprocess(void) {
// resume(create((void *)main, INITSTK, INITPRIO, "Main Process", 0, NULL));
// 200 ok and 400 ok
resume(create((void *)shell, 200, INITPRIO, "shell", 0, NULL));
// resume(create((void *)shell, 200, INITPRIO, "shell", 0, NULL));
resume(create((void *)shell, 256, INITPRIO, "shell", 0, NULL));
for(;;);
}

5
xinu-avr-port.txt

@ -1,4 +1,9 @@
Si en include/shell.c achicamos maxtokens podemos achicar la cantidad
de memoria que necesita el shell en create() en initialice()
Por ejemplo, podemos rescatar 56 bytes si tokens maximo son 5.
Vamos a usar los startupfiles y el ldscript de avr-gcc
para poder llamar a nulluser agregamos la sección init8

Loading…
Cancel
Save