sched: Set all required process registers
This commit is contained in:
parent
570f036752
commit
e0c7a11f6e
1 changed files with 3 additions and 1 deletions
|
@ -18,7 +18,7 @@ void irq_sys_tick(void)
|
||||||
* because it is faster that way (according to the docs, at least)
|
* because it is faster that way (according to the docs, at least)
|
||||||
*/
|
*/
|
||||||
if (!_is_atomic_context)
|
if (!_is_atomic_context)
|
||||||
arch_irq_invoke(IRQNO_PEND_SV);
|
arch_irq_invoke(IRQNO_PEND_SV);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -64,6 +64,8 @@ void arch_sched_process_init(struct process *process, void (*entry)(void))
|
||||||
|
|
||||||
memset(regs, 0, sizeof(*regs));
|
memset(regs, 0, sizeof(*regs));
|
||||||
regs->hw.pc = entry;
|
regs->hw.pc = entry;
|
||||||
|
regs->hw.psr = 0x01000000;
|
||||||
|
regs->sw.lr = 0xFFFFFFF9;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sched_switch_early(enum proc_state state)
|
void sched_switch_early(enum proc_state state)
|
||||||
|
|
Loading…
Reference in a new issue