Mercurial > ecos
diff packages/redboot/current/src/main.c @ 141:450e4e1f1e80 ecos-sw-2000-11-27
Merge from eCos master repository on 2000-11-27-23:09:27-GMT
| author | jlarmour |
|---|---|
| date | Tue, 28 Nov 2000 00:03:34 +0000 |
| parents | 289bf90c6a9b |
| children | 6b5f480c6929 |
line wrap: on
line diff
--- a/packages/redboot/current/src/main.c +++ b/packages/redboot/current/src/main.c @@ -93,6 +93,10 @@ CYG_HAL_TABLE_BEGIN( __RedBoot_CMD_TAB__ CYG_HAL_TABLE_END( __RedBoot_CMD_TAB_END__, RedBoot_commands ); extern struct cmd __RedBoot_CMD_TAB__[], __RedBoot_CMD_TAB_END__; +#ifdef HAL_ARCH_PROGRAM_NEW_STACK +extern void HAL_ARCH_PROGRAM_NEW_STACK(void *fun); +#endif + void do_version(int argc, char *argv[]) { @@ -172,7 +176,11 @@ cyg_start(void) if (res == 0) { // Special case of '$' - need to start GDB protocol CYGACC_CALL_IF_SET_CONSOLE_COMM(cur); +#ifdef HAL_ARCH_PROGRAM_NEW_STACK + HAL_ARCH_PROGRAM_NEW_STACK(breakpoint); +#else breakpoint(); // Get GDB stubs started, with a proper environment, etc. +#endif } else { if (strlen(line) > 0) { if ((cmd = parse(line, &argc, &argv[0])) != (struct cmd *)0) { @@ -288,7 +296,11 @@ do_go(int argc, char *argv[]) HAL_DCACHE_SYNC(); HAL_ICACHE_INVALIDATE_ALL(); HAL_DCACHE_INVALIDATE_ALL(); +#ifdef HAL_ARCH_PROGRAM_NEW_STACK + HAL_ARCH_PROGRAM_NEW_STACK(fun); +#else (*fun)(); +#endif } //
