ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
25 ноября
45278
JeDay (30.11.2005 01:34, просмотров: 854)
uCOS-II. Как точно расчитать размер стека задач ? Юзаю ATMEGA128. Вот так запускаю задачу: OSTaskStkSize = 240; OSTaskStkSizeHard = 64; OSTaskCreateExt(Task_Start, (void *)0, (OS_STK *)&TaskStartStk[OSTaskStkSize - 1], OS_TASK_START_PRIO, OS_TASK_START_PRIO, (OS_STK *)&TaskStartStk[OSTaskStkSizeHard], OSTaskStkSize - OSTaskStkSizeHard, (void *)0, OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); Припустим у меня поток Task_Start имеет 3 вложения ф-й. Я задал 240 ячеек стека всего из них под адреса возвратов 64. Как я понимаю soft_stk сохраняет 32 регистра, SREG, SPH, SPL, RAMPZ, p_arg. Это около 38 ячеек. Плюс hard_stk у котором 3 ячейки для адресов возврата. Вроди достаточно зарезервировать OSTaskStkSize = 40; OSTaskStkSizeHard = 4; А в примере, который с портом идет OSTaskStkSize = 240; OSTaskStkSizeHard = 64; Вопросик: Как расчитывать точный требуемый размер стека ? К примеру ATMEGA128. Зараннее спасибо.