Перейти к содержанию
    

uCos-II+ATMega128

Запустил порт под IAR и начал изучат.

Не смог поймат следущее.

 

Смотрю на примера для IAR.

 

для каждой таск сначала

OS_STK AppTaskStartStk[OS_TASK_START_STK_SIZE];

OS_STK AppTask1Stk[OS_TASK_1_STK_SIZE];

OS_STK AppTask2Stk[OS_TASK_2_STK_SIZE];

OS_STK AppTask3Stk[OS_TASK_3_STK_SIZE];

 

а потом создаем

 

OSTaskStkSize = OS_TASK_3_STK_SIZE; // Setup the default stack size

OSTaskStkSizeHard = OS_TASK_3_STK_SIZE_HARD; // Setup the default hardware stack size

OSTaskCreateExt(AppTask3,

(void *)0,

(OS_STK *)&AppTask3Stk[OSTaskStkSize - 1],

OS_TASK_3_PRIO,

OS_TASK_3_PRIO,

(OS_STK *)&AppTask3Stk[OSTaskStkSizeHard],

OSTaskStkSize - OSTaskStkSizeHard,

(void *)0,

OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);

 

не понял OSTaskStkSizeHard для чего използуется?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в описании порта пишется для чего - это из за IAR они испоьзуют два стека для AVR один jumpы держит другой переменные . Прочтите внимательно описания портов к avr и описание iar - там все сказано.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сколько места занимает юКОС-2 в АВР по минимуму? Есть смысл его пихать в mega16 при 5-10 юзеровских задачах(task'ax)?

16k ROM/1k RAM.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сколько места занимает юКОС-2 в АВР по минимуму? Есть смысл его пихать в mega16 при 5-10 юзеровских задачах(task'ax)?

16k ROM/1k RAM.

 

У AVR контекст тяжелый. uCOS с 1к RAM для AVR поднять, наверное можно, но чисто из академического интереса. С 1, 2 юзеровскими задачами максимум.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сколько места занимает юКОС-2 в АВР по минимуму? Есть смысл его пихать в mega16 при 5-10 юзеровских задачах(task'ax)?

16k ROM/1k RAM.

Посмотри на scmRTOS . она полегче. Раздел для AVR тут.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Използоват uCOS-II с AVR имеет смъисл толко на Мега64/128.

Я в IAR резервировал 5 из регистров и так контекст стал поменше.

В етот проект имел и одно перервание и чтоб не ртезервироват место для сохранения контекста в стек каждого task-a сделал отделнии стек для ето перервание и пререключал на него при входа в перервание и возстоновлял перед въихода. Так можно сделат дла каждое перервание.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...