Mercurial > flash_v2
diff packages/hal/arm/ebsa285/current/src/ebsa285_misc.c @ 143:6b5f480c6929 ecos-sw-2000-12-08
Merge from eCos master repository on 2000-12-08-02:09:36-GMT
| author | jlarmour |
|---|---|
| date | Fri, 08 Dec 2000 03:30:06 +0000 |
| parents | 6ed91473a1cd |
| children | d397fc472bcf |
line wrap: on
line diff
--- a/packages/hal/arm/ebsa285/current/src/ebsa285_misc.c +++ b/packages/hal/arm/ebsa285/current/src/ebsa285_misc.c @@ -467,5 +467,20 @@ void hal_interrupt_set_level(int vector, // No interrupts are configurable on this hardware } +#include CYGHWR_MEMORY_LAYOUT_H +typedef void code_fun(void); +void ebsa285_program_new_stack(void *func) +{ + register CYG_ADDRESS stack_ptr asm("sp"); + register CYG_ADDRESS old_stack asm("r4"); + register code_fun *new_func asm("r0"); + old_stack = stack_ptr; + stack_ptr = CYGMEM_REGION_ram + CYGMEM_REGION_ram_SIZE - sizeof(CYG_ADDRESS); + new_func = (code_fun*)func; + new_func(); + stack_ptr = old_stack; + return; +} + /*------------------------------------------------------------------------*/ // EOF ebsa285_misc.c
