реклама на сайте
подробности

 
 
> Проблема с запуском uCOS-II на ATMEGA128.
Ember
сообщение Oct 18 2005, 13:17
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 22-06-05
Из: Ukraine, Kharkov
Пользователь №: 6 229



Коллеги !!! Кто юзает uCOS-II, поделитесь проэктиком приз под ATMega128. Желательно IAR 4.11. (Что то у меня с потоками каша какаято sad.gif... ).

Мне надо обработчик системного таймера сгородить. Когда вызываю ф-ю
OSTaskCreateExt() то у меня ATMega постоянно через сброс проходит,а когда
OSTaskCreate() не сбрасывается. Наверно чтото со стеками не все в порядке ?
Хотя обе функции возвращают OS_NO_ERR.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 3)
Andy Mozzhevilov
сообщение Oct 20 2005, 17:01
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206



Цитата(Ember @ Oct 18 2005, 18:17)
Коллеги !!! Кто юзает uCOS-II, поделитесь проэктиком приз под ATMega128. Желательно IAR 4.11. (Что то у меня с потоками каша какаято sad.gif... ).

Мне надо обработчик системного таймера сгородить.  Когда вызываю ф-ю
OSTaskCreateExt() то у меня ATMega постоянно через сброс проходит,а когда
OSTaskCreate() не сбрасывается. Наверно чтото со стеками не все в порядке ?
Хотя обе функции возвращают OS_NO_ERR.
*


Предположение - у функции OSTaskCreateExt() параметров значительно больше, чем у OSTaskCreate(), и внутри она возможно (на память не вспомню, а посмотреть сейчас не могу) использует большее количество локальных переменных, которые ложатся в стек данных. Если стека данных, на котором производится инициализация недостаточно, то он будет залазить на соседние области, а в таких случаях поведение системы непредсказуемо, и сброс - далеко не худший вариант.


--------------------
Пасу котов...
Go to the top of the page
 
+Quote Post
spf
сообщение Oct 21 2005, 03:15
Сообщение #3


Странник
****

Группа: Свой
Сообщений: 766
Регистрация: 29-08-05
Из: Екатеринбург
Пользователь №: 8 051



Цитата(Andy Mozzhevilov @ Oct 20 2005, 22:01)
Предположение - у функции OSTaskCreateExt() параметров значительно больше, чем у OSTaskCreate(), и внутри она возможно (на память не вспомню, а посмотреть сейчас не могу) использует большее количество локальных переменных, которые ложатся в стек данных.  Если стека данных, на котором производится инициализация недостаточно, то он будет залазить на соседние области, а в таких случаях поведение системы непредсказуемо, и сброс - далеко не худший вариант.


Можно еще добавить что в случае активизации флага OS_TASK_CREATE_EXT_EN память потребляют и все структуры типа os_tcb, причем в немалы х количествах.
Не знаю IAR, как там распределяется и контролируется память... но думаю надо начинать с нее.
В первую очередь попробуй увеличить стеки задач.

На всякий случай ;-):
В конфиге установлено OS_TASK_CREATE_EXT_EN 1

И сообщи версию используемой ucos-ii.


--------------------
"Как много есть на свете вещей, которые мне не нужны!" Сократ
Go to the top of the page
 
+Quote Post
JeDay
сообщение Oct 24 2005, 12:11
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 276
Регистрация: 22-09-05
Из: Kiev
Пользователь №: 8 818



Всем спасибо. ОС заработала. Я неправильно стеки инициализировал.

OSTaskStkSize = OS_TASK_IDLE_STK_SIZE; // (1)
OSTaskStkSizeHard = OS_TASK_IDLE_STK_SIZE_HARD; // (2)
OSInit();

OSTaskStkSize = OS_TASK_START_STK_SIZE; // (3)
OSTaskStkSizeHard = OS_TASK_START_STK_SIZE_HARD; // (4)
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);

Я пункты 1,2 пропустил, а место 3,4 в ф-ю OSTaskCreateExt размеры стеком напрямую прописывал.

(Писал от имени Ember, он зыбил выход нажать smile.gif )
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 21:01
Рейтинг@Mail.ru


Страница сгенерированна за 0.01376 секунд с 7
ELECTRONIX ©2004-2016