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

 
 
> Вопросы по scmRTOS
koluna
сообщение May 15 2009, 12:59
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 040
Регистрация: 3-01-07
Пользователь №: 24 061



Здравствуйте!

scmRTOS v3 AVR/GCC.
Компилятор - WinAVR 20080610.
IDE - Code::Blocks 8.02.
Простую тестовую программу буду пробовать на ATmega88.

Приступил к изучению.
Читаю scmRTOS_v2.pdf, смотрю исходники примеров релиза.

Возникло несколько вопросов. Прошу помочь разобраться.
Буду очень благодарен за какие-нибудь шаблоны программ (без лишнего кода), практические рекомендации и ссылки!

Первые два вопроса - функции main примеров.
1. В примерах T0 - системный таймер. Почему инициализация и запуск системного таймера производится не средствами ОС (допустим, в Run), а пользователем ОС вручную?
2. Почему при использовании передачи управления на основе программного прерывания инициализация компаратора производится не средствами ОС, а пользователем ОС вручную?
3. Один тик системного таймера - одно его переполнение?
4. Рекомендуемое значение системного тика 1-10 мс. Т. е., мы должны настраивать системный таймер, на переполнение его в пределах этого времени?
5. Каковы будут дополнительные опции компилятора для моей связки ОС + компилятор + IDE?

Благодарю заранее!


--------------------
Благодарю заранее!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
a9d
сообщение Apr 9 2010, 17:34
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 312
Регистрация: 9-04-10
Пользователь №: 56 532



atmega8
scmRTOS_SYSTIMER_NEST_INTS_ENABLE 1
scmRTOS_PROCESS_COUNT 2

Начал изучать эту ОС. Документацию прочитал.
Но не пойму. Почему в моем коде никогда не выполняется TProc2?

TProc1 ждет байт. Если пришел то отправить.
TProc2 постоянно шлет 'b'.
SystemTimerUserHook. постоянно отсылает 'v'.

На выводе постоянно фижу 'v' но никогда 'b'. Если отсылаю байт то он тут же возвращается.
Вывод TProc2 никогда не передается управление.

Код
int main()
{
    MyUart.init();
    // Start System Timer
    TCCR0 = (1 << CS01) | (1 << CS00);    // clk/64
    TIMSK |= (1 << TOIE0);

    //Запускаем ОС
    OS::Run();

    return 0;
}

//---------------------------------------------------------------------------
namespace OS {

template<> OS_PROCESS void TProc1::Exec()
{
    unsigned char c;

    for(;;)
    {
        c=MyUart.receiveByte();
                    MyUart.sendByte(c);
    }
} // TProc1::Exec()


template<> OS_PROCESS void TProc2::Exec()
{
    for(;;)
    {
        MyUart.sendByte('b');
        Sleep(50);
    }
} // TProc2::Exec()


} // namespace OS

void OS::SystemTimerUserHook()
{
#if  scmRTOS_SYSTIMER_NEST_INTS_ENABLE  &&  !PORT_TOGGLE_BY_PIN_WRITE
    TCritSect cs;
#endif
    MyUart.sendByte('v');
}
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Apr 9 2010, 18:26
Сообщение #3


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



А всё потому, что TProc1 имеет наивысший приоритет, и не отдаёт никому управление.
Вставьте в TProc1
Код
        MyUart.sendByte('b');
        Sleep(10);

и всё заработает.
А если всё делать по уму, то надо чтобы функция MyUart.receiveByte(); сама вгоняла вызвавший её процесс в спячку до прихода символа.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- n_bogoyavlensky   Вопросы по scmRTOS   May 15 2009, 12:59
- - dxp   Цитата(n_bogoyavlensky @ May 15 2009, 19...   May 15 2009, 13:42
|- - n_bogoyavlensky   По вопросам 1 и 2 понятно. Т. е., для того, чтобы ...   May 15 2009, 14:23
- - ReAl   Там есть makefile с ключами компилятора. Если Cod...   May 15 2009, 14:47
- - sergeeff   У нас на форуме уже рассказывалось, как можно ввес...   May 15 2009, 18:29
- - n_bogoyavlensky   Вот и ещё вопросы подоспели 8. Для чего функция ...   May 15 2009, 18:37
|- - ReAl   Цитата(n_bogoyavlensky @ May 15 2009, 21...   May 15 2009, 21:00
|- - dxp   Цитата(n_bogoyavlensky @ May 16 2009, 01...   May 16 2009, 05:54
|- - n_bogoyavlensky   Цитата(dxp @ May 16 2009, 09:54) А как ин...   May 16 2009, 09:35
|- - dxp   Цитата(n_bogoyavlensky @ May 16 2009, 16...   May 16 2009, 10:57
|- - ReAl   Цитата(dxp @ May 16 2009, 13:57) Как бы в...   May 16 2009, 12:17
|- - sergeeff   Цитата(ReAl @ May 16 2009, 15:17) Если по...   May 16 2009, 18:06
||- - ReAl   Цитата(sergeeff @ May 16 2009, 21:06) Вы ...   May 17 2009, 10:04
||- - sergeeff   Цитата(ReAl @ May 17 2009, 14:04) На мест...   May 17 2009, 10:58
|- - dxp   Цитата(ReAl @ May 16 2009, 19:17) Если по...   May 18 2009, 05:54
- - sergeeff   Раз пошел процесс обсуждения scmRTOS, хочу восполь...   May 16 2009, 11:39
|- - dxp   Цитата(sergeeff @ May 16 2009, 18:39) Оче...   May 18 2009, 05:44
- - n_bogoyavlensky   Вопросы далее 11. Как лучше поступить с исходник...   May 16 2009, 12:30
|- - ReAl   Цитата(n_bogoyavlensky @ May 16 2009, 15...   May 16 2009, 13:31
- - n_bogoyavlensky   Вообще непонятны следующие конструкции в примерах,...   May 16 2009, 13:40
- - n_bogoyavlensky   Помогите, пожалуйста, побороть ошибки (на первой с...   May 17 2009, 10:31
|- - ReAl   Цитата(n_bogoyavlensky @ May 17 2009, 13...   May 17 2009, 11:13
|- - n_bogoyavlensky   Цитата(ReAl @ May 17 2009, 15:13) Что-то ...   May 17 2009, 11:17
|- - sergeeff   Цитата(n_bogoyavlensky @ May 17 2009, 15...   May 17 2009, 11:21
- - n_bogoyavlensky   Вот по поводу этого объясните, ещё пожалуйста: Ко...   May 17 2009, 11:42
- - sergeeff   На 21 стр. - "скелет" функции. Собственн...   May 17 2009, 11:53
|- - n_bogoyavlensky   Цитата(sergeeff @ May 17 2009, 15:53) На ...   May 17 2009, 12:10
|- - ReAl   Цитата(n_bogoyavlensky @ May 17 2009, 15...   May 17 2009, 13:56
- - sergeeff   Текущая верия scmRTOS? - 3.05 А документация писа...   May 17 2009, 12:17
- - n_bogoyavlensky   ReAl Понятно. Вот спасибо И за avreal32.exe спас...   May 17 2009, 15:14
|- - Сергей Борщ   Цитата(n_bogoyavlensky @ May 17 2009, 18...   May 17 2009, 15:25
- - sergeeff   Ну и лады.   May 18 2009, 05:49
- - n_bogoyavlensky   13. Что такое системный процесс Idle и для чего он...   May 18 2009, 09:31
|- - Сергей Борщ   Цитата(n_bogoyavlensky @ May 18 2009, 12...   May 18 2009, 11:37
- - n_bogoyavlensky   Ну вот, запустил Только вот код много места заним...   May 18 2009, 12:24
|- - ReAl   Цитата(n_bogoyavlensky @ May 18 2009, 15...   May 18 2009, 12:27
- - n_bogoyavlensky   Нашёл: В OS_Target_cpp.cpp определена функция: К...   May 18 2009, 12:59
|- - ReAl   Цитата(n_bogoyavlensky @ May 18 2009, 15...   May 18 2009, 13:46
- - n_bogoyavlensky   Не могу понять... почему у меня тогда код почти в ...   May 18 2009, 14:58
|- - ReAl   Цитата(n_bogoyavlensky @ May 18 2009, 17...   May 18 2009, 16:42
|- - n_bogoyavlensky   Цитата(ReAl @ May 18 2009, 20:42) Попробу...   May 18 2009, 17:14
|- - ReAl   Цитата(n_bogoyavlensky @ May 18 2009, 20...   May 18 2009, 17:25
- - sergeeff   Уважаемый коллега! Неужели вам в google трудн...   May 18 2009, 17:28
- - n_bogoyavlensky   Спасибо Вам всем большое Обязательно посмотрю под...   May 18 2009, 18:05
|- - sergeeff   Цитата(n_bogoyavlensky @ May 18 2009, 22...   May 18 2009, 18:08
|- - n_bogoyavlensky   Цитата(sergeeff @ May 18 2009, 22:08) Мож...   May 18 2009, 18:39
- - n_bogoyavlensky   Здравствуйте! Ещё один вопрос Корректным ли...   May 25 2009, 06:06
|- - Сергей Борщ   Цитата(n_bogoyavlensky @ May 25 2009, 09...   May 25 2009, 07:50
|- - n_bogoyavlensky   Цитата(Сергей Борщ @ May 25 2009, 11:50) ...   May 25 2009, 08:28
|- - Сергей Борщ   Цитата(n_bogoyavlensky @ May 25 2009, 11...   May 25 2009, 08:41
|- - n_bogoyavlensky   Цитата(Сергей Борщ @ May 25 2009, 12:41) ...   May 25 2009, 10:31
- - n_bogoyavlensky   Здравствуйте! Смотрю в даташит и понять не м...   Jun 10 2009, 10:20
|- - Сергей Борщ   Цитата(n_bogoyavlensky @ Jun 10 2009, 13...   Jun 10 2009, 10:41
||- - n_bogoyavlensky   Цитата(Сергей Борщ @ Jun 10 2009, 14:41) ...   Jun 22 2009, 11:56
|- - ReAl   Цитата(n_bogoyavlensky @ Jun 10 2009, 13...   Jun 10 2009, 10:45
|- - n_bogoyavlensky   Цитата(ReAl @ Jun 10 2009, 13:45) Вход ко...   Jun 10 2009, 11:25
- - n_bogoyavlensky   Не работает! Прямая передача управления работ...   Jun 22 2009, 18:12
|- - ReAl   Цитата(n_bogoyavlensky @ Jun 22 2009, 21...   Jun 22 2009, 19:38
|- - n_bogoyavlensky   Цитата(ReAl @ Jun 22 2009, 23:38) Странно...   Jun 23 2009, 03:36
|- - ReAl   Цитата(n_bogoyavlensky @ Jun 23 2009, 06...   Jun 23 2009, 08:42
|- - n_bogoyavlensky   Цитата(ReAl @ Jun 23 2009, 12:42) Хм. В к...   Jun 23 2009, 10:19
|- - ReAl   Цитата(n_bogoyavlensky @ Jun 23 2009, 13...   Jun 23 2009, 10:44
|- - n_bogoyavlensky   Цитата(ReAl @ Jun 23 2009, 14:44) Самая п...   Jun 23 2009, 12:03
- - n_bogoyavlensky   Откомпилировал в WinAVR 2007 - не работает. Откомп...   Jun 23 2009, 19:16
|- - ReAl   Цитата(n_bogoyavlensky @ Jun 23 2009, 22...   Jun 24 2009, 16:43
|- - n_bogoyavlensky   Цитата(ReAl @ Jun 24 2009, 20:43) Ой, а э...   Jun 24 2009, 16:54
- - n_bogoyavlensky   Огромная просьба, если Вас не затруднит, то провер...   Jun 23 2009, 20:21
- - n_bogoyavlensky   Проверил в железе. ATmega48P, 20 МГц, оба способа ...   Jun 25 2009, 07:06
|- - Сергей Борщ   Цитата(n_bogoyavlensky @ Jun 25 2009, 10...   Jun 25 2009, 07:22
- - n_bogoyavlensky   По поводу нашего давнего разговора в этой ветке о ...   Jun 25 2009, 07:25
|- - ReAl   Цитата(n_bogoyavlensky @ Jun 25 2009, 10...   Oct 4 2009, 09:40
- - sevstels   Хотел попробовать запустить примеры для BF533. К с...   Oct 4 2009, 07:40
- - sevstels   уже решил заменой файлов из snapshot мне только од...   Oct 4 2009, 13:19
|- - dxp   Цитата(sevstels @ Oct 4 2009, 20:19) уже ...   Oct 5 2009, 08:16
- - sevstels   Это конечно удивительно, автор работает ещё 4.0 ве...   Oct 5 2009, 13:41
|- - dxp   Цитата(sevstels @ Oct 5 2009, 20:41) Это ...   Oct 6 2009, 02:56
- - sevstels   Уважаемый dxp, подскажите плиз, где "подкрути...   Oct 6 2009, 03:45
|- - dxp   Цитата(sevstels @ Oct 6 2009, 10:45) ----...   Oct 6 2009, 07:27
- - sevstels   Расширение давно поменял, файл OS_Target_asm.asm П...   Oct 6 2009, 07:43
|- - dxp   Цитата(sevstels @ Oct 6 2009, 14:43) Расш...   Oct 6 2009, 09:18
- - sevstels   Да, asm есть для MPEG-4 енкодера. Они тоже выдают ...   Oct 6 2009, 10:39
- - sevstels   Накопал... Не обратил внимание на warning по повод...   Oct 7 2009, 02:19
|- - meister   Безопасно ли использовать setjmp и longjump в scmR...   Nov 7 2009, 11:24
- - vzuravlo   Добрый день. Я новичок в программировании, не суди...   Jan 23 2010, 21:31
|- - dxp   Цитата(vzuravlo @ Jan 24 2010, 03:31) у м...   Jan 24 2010, 10:48
|- - ReAl   Цитата(dxp @ Jan 24 2010, 12:48) Вы может...   Jan 24 2010, 11:11
- - kurtis   Возник небольшой вопрос при использовании scmRTOS....   Feb 26 2010, 15:57
|- - Сергей Борщ   перенесите определение #define TOTAL_PROCESS_NUMBE...   Feb 26 2010, 16:50
- - kurtis   не помогло, те самые ошибки   Feb 26 2010, 18:43
|- - Сергей Борщ   Цитата(kurtis @ Feb 26 2010, 20:43) не по...   Feb 26 2010, 19:00
- - kurtis   Спасибо!)) Теперь получилось.   Feb 26 2010, 19:20
- - Embedder74   Начал разбираться с scmRTOS.3.10. Ответьте, плз. н...   Mar 24 2010, 10:18
|- - jorikdima   Цитата(Embedder74 @ Mar 24 2010, 13:18) 2...   Mar 24 2010, 11:14
||- - Embedder74   Цитата(jorikdima @ Mar 24 2010, 14:14) из...   Mar 25 2010, 08:37
||- - Сергей Борщ   Цитата(Embedder74 @ Mar 25 2010, 10:37) Н...   Mar 25 2010, 09:01
||- - jorikdima   Цитата(Embedder74 @ Mar 25 2010, 11:37) А...   Mar 25 2010, 10:02
|- - AHTOXA   Цитата(Embedder74 @ Mar 24 2010, 15:18) 1...   Mar 24 2010, 11:42
- - a9d   Т.е. я должен должен явно указывать какой процесс ...   Apr 9 2010, 18:51
2 страниц V   1 2 >


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

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 13:57
Рейтинг@Mail.ru


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