{
uint8_t __xdata *stack;
if (ao_num_tasks == AO_NUM_TASKS)
- ao_panic(AO_ERROR_NO_TASK);
+ ao_panic(AO_PANIC_NO_TASK);
ao_tasks[ao_num_tasks++] = task;
/*
* Construct a stack frame so that it will 'return'
int
ao_sleep(__xdata void *wchan)
{
+ __critical {
ao_cur_task->wchan = wchan;
+ }
ao_yield();
}
void
ao_start_scheduler(void)
{
- ao_timer_init();
- ao_adc_init();
- ao_beep_init();
- ao_led_init();
ao_cur_task_id = AO_NO_TASK;
ao_cur_task = NULL;