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

 
 
> Вопросы по 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
Ответов
koluna
сообщение May 15 2009, 18:37
Сообщение #2


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

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



Вот и ещё вопросы подоспели smile.gif

8. Для чего функция процесса Exec() - статическая?
9. Почему функции WakeUpProcess() и ForceWakeUpProcess() следует использовать с осторожностью? В каких случаях?
10. Какую оптимизацию задавать при компиляции?

Цитата(sergeeff @ May 15 2009, 22:29) *
У нас на форуме уже рассказывалось, как можно ввести контроль за объемом стека в scmRTOS. Методика простая. Выделяем поболее, смотрим за реальной работой процессора, анализируем сколько было использовано. Есть возможность - ужимаем, оставив еще немного про запас.


Я читал smile.gif
Но мне как новичку пока сложновато это...

Цитата(ReAl @ May 15 2009, 18:47) *
TOGGLE(LED_R);


Что это?


--------------------
Благодарю заранее!
Go to the top of the page
 
+Quote Post
dxp
сообщение May 16 2009, 05:54
Сообщение #3


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(n_bogoyavlensky @ May 16 2009, 01:37) *
8. Для чего функция процесса Exec() - статическая?


А как иначе? Эта функция должна быть в единственном экземпляре всегда. Кроме того, хотя эта функция и объявлена, как функция процесса, на самом деле к ресурсам процесса она отношения не имеет и служит исключительно для нужд пользовательского кода. Поэтому делать ее нестатической - это передача ненужного this, а учитывая, что эта фукнция нормально не вызывается, то и this нее передать невозможно. Вот такие логические и технические посылы.

Цитата(n_bogoyavlensky @ May 16 2009, 01:37) *
9. Почему функции WakeUpProcess() и ForceWakeUpProcess() следует использовать с осторожностью? В каких случаях?

Потому, что их использование нарушает обычную логику работы программы. Например, какой-то процесс ожидает события, а тут его в другом месте выдергивают - это как бы нештатная ситуация. Поэтому тут надо действовать внимательно. К слову сказать, функции эти сделаны там скорее на всякий случай, лично я уже и не помню, когда их применял (и применял ли вообще). При правильно организованной программе необходимость в их использовании стемится к нулю. Это как с оператором goto.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
koluna
сообщение May 16 2009, 09:35
Сообщение #4


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

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



Цитата(dxp @ May 16 2009, 09:54) *
А как иначе? Эта функция должна быть в единственном экземпляре всегда.


Каждый процесс - объект типа полученного с помощью шаблона process, наследник TBaseProcess.
Каждый процесс существует в единственном экземпляре.
Значит функция будет и так в единственном экземпляре...
Или я не понимаю что такое статическая функция sad.gif

Цитата
Потому, что их использование нарушает обычную логику работы программы. Например, какой-то процесс ожидает события, а тут его в другом месте выдергивают - это как бы нештатная ситуация. Поэтому тут надо действовать внимательно. К слову сказать, функции эти сделаны там скорее на всякий случай, лично я уже и не помню, когда их применял (и применял ли вообще). При правильно организованной программе необходимость в их использовании стемится к нулю. Это как с оператором goto.


А что может произойти? Система "упадёт"?


--------------------
Благодарю заранее!
Go to the top of the page
 
+Quote Post
dxp
сообщение May 16 2009, 10:57
Сообщение #5


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(n_bogoyavlensky @ May 16 2009, 16:35) *
Каждый процесс - объект типа полученного с помощью шаблона process, наследник TBaseProcess.
Каждый процесс существует в единственном экземпляре.
Значит функция будет и так в единственном экземпляре...
Или я не понимаю что такое статическая функция sad.gif


Никто не мешает завести больше одного объекта-процесса. Хотя это, конечно, неправильно. Я же ясно, вроде, пояснил, что:
  1. хотя эта функция и объявлена, как функция процесса, на самом деле к ресурсам процесса она отношения не имеет и служит исключительно для нужд пользовательского кода. Это логический довод.
  2. делать ее нестатической - это передача ненужного this, а учитывая, что эта фукнция нормально не вызывается, то и this нее передать невозможно. Это технический довод.
Как бы вы передали в нее указатель this? А без этого она может работать некорректно, и там можно получить очень хорошие грабли.




Цитата(n_bogoyavlensky @ May 16 2009, 16:35) *
А что может произойти? Система "упадёт"?


Можно получить неожиданное поведение. И удивляться. 


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
ReAl
сообщение May 16 2009, 12:17
Сообщение #6


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(dxp @ May 16 2009, 13:57) *
Как бы вы передали в нее указатель this?
Если постараться - можно.
В конструкторе TBaseProcess после Kernel.RegisterProcess(this), там, где формируется начальный стековый кадр, затолкать этот же this в такое место, чтобы после восстановления контекста он оказался в нужных регистрах. Только, насколько я понимаю, тип параметра exec у конструктора для этого должен быть другой - указатель на функцию-член.

Топикстартеру:

Таким же образом можно было бы передать в функцию процесса указатель на некую структуру/класс, с которыми процесс должен работать, но для этого надо конструктору добавить соответствующий аргумент. Но это имело бы смысл при одновремённом переводе Exec() в нестатическую - чтобы создавать два экземпляра процесса (с разными приоритетами, но это в конечном счёте не важно), работающие одинаковым образом с разными однотипными сущностями и разделяющими код.

Но это же делается просто созданием двух процессов, из Exec() которых вызывается одна и та же функция с разными указателями на рабочий объект. Несколько накладнее, пожалуй. И не так красиво.
Но у меня пока такие желания не возникали - ну пусть два UART - ну всё равно у них разное назначение в системе и они обрабатываются по разному.
А ради просто красоты до/пере-делывать структуру ОС особого смысла не вижу.



Цитата(sergeeff @ May 16 2009, 14:39) *
Очень хотелось бы сделать так, чтобы первый объявленный процесс получал высший приоритет, следующий процесс - приоритет на 1 ниже и т.д.
Тогда, объявив в самой ОС число возможных процессов по максимуму всю ОС оформить в виде отдельной библиотеки и пользователям в своей организации раздать, чтобы они "грязными ногами" в ее "чистом теле" не натоптали. Сколько не думал, пока ничего не придумалось. Может есть какие соображения на сей счет?
Чтобы процессов было "по максимуму" их и задать бы надо. Ну там размер таблиц вырастет, это ладно, но между низшим по приоритету из созданных и Idle заполнено всё должно быть, она же их вызывать попытается.
Можно наоборот - с низшего начинать. Ну, если выйдет, так как я тоже чисто языковыми средствами не могу придумать как это сделать - в разных файлах, независимо. Но тогда начинаться непонятно с чего выполнение будет - до наивысшего таблицы пусты.

Главное - "а зачем"?
Удобство "объектных", а не "исходниковых" библиотек в embeded обсуждалось неоднократно и практически для всего, кроме стандартной библиотеки языка оно для меня сомнительно. А уж scmRTOS, в которой ещё некоторые вещи конфигурируются попроектно - не только число процессов, и компилируется потом с inline-подстановками оптимально под проект - так и подавно.

Так то, что должно решаться административными методами, ими и решайте.
Пусть проверка результата работы производится компиляцией со свежевыдернутыми из недоступного по правам записи хранилища, а кто в рабочей копии наменял что-то - сам себе враг. Или ещё что-то придумайте.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
sergeeff
сообщение May 16 2009, 18:06
Сообщение #7


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата(ReAl @ May 16 2009, 15:17) *
Если постараться - можно.
В конструкторе TBaseProcess после Kernel.RegisterProcess(this), там, где формируется начальный стековый кадр, затолкать этот же this в такое место, чтобы после восстановления контекста он оказался в нужных регистрах. Только, насколько я понимаю, тип параметра exec у конструктора для этого должен быть другой - указатель на функцию-член.


Вы понимаете, надеюсь, что на место параметра exec в дальнейшем при переключении процессов будет писаться адрес возврата в прерванный процесс? Соответственно, this->(адрес чего-то там) никак не укладывается в размерность "чего-то там". А exec за счет своего static - укладывается, да еще и существует в единственном виде.

Про автоматическое присвоение приоритетам по мере объявления. Это могло бы автоматически решить проблему "бездырности" приоритетов в переменной, где устанавливаются/сбрасываются единички активных процессов. Одна из видимых проблем - pridle - намертво зашитый в enum. Понятно, что можно все тексты scmRTOS таскать вместе с проектом, но вы же исходники Windows/Linus и прочего в таком виде не используете? Вот и мне также хотелось бы иметь только библиотеки от scmRTOS, ну за вычетом inline и template, которые ну просто никак по-другому (пока, по крайней мере).
Go to the top of the page
 
+Quote Post
ReAl
сообщение May 17 2009, 10:04
Сообщение #8


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(sergeeff @ May 16 2009, 21:06) *
Вы понимаете, надеюсь, что на место параметра exec в дальнейшем при переключении процессов будет писаться адрес возврата в прерванный процесс?
На место параметра писаться не будет ничего. Писаться будет на то место в стеке процесса, куда конструктор значение параметра - начальное значение счётчика команд для процесса, как якобы он в этот момент был прерван - будет записано. При статическом exec происходит то же - при первом же вызове любой подпрограммы, первом же вхождении в любое прерывание - стековый кадр процесса будет перезаписан, от инициализирующих значений там ничего не останется.

Цитата(sergeeff @ May 16 2009, 21:06) *
Соответственно, this->(адрес чего-то там) никак не укладывается в размерность "чего-то там". А exec за счет своего static - укладывается, да еще и существует в единственном виде.
Это другое дело, тут я не прав
(::*)() имеет более сложную структуру, чем (*)(), там наворочено на случай наследования/виртуальных и эта гадость не приводится ни к void* и к чему другому и просто так вызвать не получится.
Так что если хочется сделать реальную функцию процесса нестатической, то нужно просто статический exec сделать принимающим указатель на объект класса (записывать в стековый кадр на нужное место this) и в самом exec() так
Код
bla_bla_bla::Exec(void *p)
{
    bla_bla_bla * myprocess = reinterpret_cast<bla_bla_bla*>(p);
    myprocess->execute();
}

Если сделать execute() ещё в TBaseProcess и сделать её виртуальной, то тогда можно прямо TBaseProcess* сделать аргументом Exec. Но это лишние расходы.
А вот сделать Exec принимающим void*, добавить аргумент void *pросdata=0 в конструктор TBaseProcess и в шаблон процесса - практически ничего не требует дополнительного и, пожалуй, будет совместимо с уже написанным кодом. И иногда может быть удобным, по крайней мере если захочется из TBaseProcess вывести свой тип процесса и создать два экземпляра процесса. Но то же самое и со столь же небольшими расходами (хотя по ОЗУ вопрос - надо смотреть) можно сделать, создав два разных процесса "как оно сейчас" и сделав
Код
bla_bla_bla_1::Exec()
{
    process1.execute();
}

bla_bla_bla_2::Exec()
{
    process2.execute();
}

Так что при желании сделать реальную функцию процесса нестатической можно разными способами, хоть и не выйдет через указатель на функцию-член.

Цитата(sergeeff @ May 16 2009, 21:06) *
вы же исходники Windows/Linus и прочего в таком виде не используете?
Со сравнением с тасканием исходников "больших" ОС не согласен - эти ОС запускают отдельно скомпилированные процессы, долинковывая их к себе при запуске. И такая универсальность тянет за собой дополнительные расходы.
От scmRTOS пока такого (к примеру, загрузки процесса по каналу связи или из воткнутой флешки) никто не требует, а если потребует, то она станет гораздо менее "scm-ной".
Она в существенной мере инлайнится в пользовательское приложений - ну положите Вы объектные модули, по .cpp и .S от scmRTOS уже "никто не потопчется" ценой роста размера таблиц. Но существенная часть кода ОС всё равно находистя в .h-файлах и с "нетоптанием" по ним всё равно придётся работать "административно" а не "языково".
"За что боролись?"

Конечно, любая автоматизация даёт удобства. И можно даже что-то попробовать наворотить. Все ключевые места, где используется число процессов - или разогнать по максимуму (таблицы), или считывать из внешних по отношению к коду ОС переменных (начальные/конечные значения счётчиков/масок при переборе процессов), так как пустые места в таблицах надо будет обходить. Стоят ли эти расходы полученного частичного удобства, отличающегося не качественно, а только количественно (ограничен доступ грязных ножек и шаловливых ручек к половине файлов)? Ну не знаю.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
sergeeff
сообщение May 17 2009, 10:58
Сообщение #9


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата(ReAl @ May 17 2009, 14:04) *
На место параметра писаться не будет ничего. Писаться будет на то место в стеке процесса, куда конструктор значение параметра - начальное значение счётчика команд для процесса, как якобы он в этот момент был прерван - будет записано.


Про счетчик команд процесса. Может вы просто неудачно это называете. Это ведь просто значение регистра адреса команд. Правильнее было бы говорить про стартовый адрес процесса в начале, и текущий (прерванный) адрес процесса.
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
|- - ReAl   Цитата(n_bogoyavlensky @ May 15 2009, 21...   May 15 2009, 21:00
|- - 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   atmega8 scmRTOS_SYSTIMER_NEST_INTS_ENABLE 1 scmR...   Apr 9 2010, 17:34
|- - AHTOXA   А всё потому, что TProc1 имеет наивысший приоритет...   Apr 9 2010, 18:26
- - a9d   Т.е. я должен должен явно указывать какой процесс ...   Apr 9 2010, 18:51
2 страниц V   1 2 >


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

 


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


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