ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
19 мая
50067 Топик полностью
Mahagam (01.02.2006 15:41, просмотров: 1) ответил Cидopгeк на Про кольцевой буфер чего-то не подумал. Queue занимает в 4 раза больше памяти. Не могли бы Вы положить в файлообменник правленный ctl.c, а то никак не разберусь, где править.
там просто файл ctl.c строка 201 (функция ctl_exit_isr) было: for (t=ctl_task_list; t && (t->priority > ctl_task_executing->priority); p=t,t=t->next) стало: for (t=ctl_task_list; t && (t->priority >= ctl_task_executing->priority); p=t,t=t->next) после чего по таймеру переключаются равноприоритетные задачи. у меня пролетала мысль о том, чтобы переписать это место так, чтобы, например, один из 10 раз выполнялась бы и задача с более низким приоритетом. далее. в файле ctl_arm.s находим по метке и приводим в соотвествие с приведённым куском текста: swi_handler: // ensure it is our swi ldr r13, =SWIlabel+4 cmp r13, r14 bne reset_handler а в crt0.s добавляем строку .global reset_handler после чего в любом месте сишного файла добавив строки вида asm("swi 0xff"); можно сделать полный рестарт процессора, с переинициализацией всех стеков, bss области и прочей херни.