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

 
 
5 страниц V  « < 2 3 4 5 >  
Reply to this topicStart new topic
> Пишу ОС РВ, Вот пишу ОС Реального времени, у какого какие предложения? пожелания?
aaarrr
сообщение Feb 3 2009, 09:12
Сообщение #46


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(ddiimmaa @ Feb 3 2009, 11:51) *
а на ABI наплевать.

Сильное заявление smile.gif Плевать на стандарты, мягко говоря, не рекомендуется. Особенно осестроителям.
Go to the top of the page
 
+Quote Post
ddiimmaa
сообщение Feb 4 2009, 20:37
Сообщение #47


Участник
*

Группа: Validating
Сообщений: 27
Регистрация: 12-12-08
Из: Ижевск
Пользователь №: 42 419



Цитата(aaarrr @ Feb 3 2009, 13:12) *
Сильное заявление smile.gif Плевать на стандарты, мягко говоря, не рекомендуется. Особенно осестроителям.

Когда будут хотя бы 10 приложений для ОСи тогда будет не наплевать на АПИ
А когда будет загрузчик и две три либы тогда будет не наплевать на АБИ

А сейчас... кхм кхм.... начхать на них мона. biggrin.gif


--------------------
Вот пишу ОС, может кому пригодиться ;-)
скачайте http://sourceforge.net/projects/irtos/
и вот сайт ещё http://irtos.sourceforge.net/
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 4 2009, 20:48
Сообщение #48


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(ddiimmaa @ Feb 4 2009, 23:37) *
А сейчас... кхм кхм.... начхать на них мона. biggrin.gif

Это заблуждение. Лучше соблюдать стандарты с самого начала, чем потом исправлять уже растиражированные ошибки.
Go to the top of the page
 
+Quote Post
ddiimmaa
сообщение Feb 6 2009, 17:38
Сообщение #49


Участник
*

Группа: Validating
Сообщений: 27
Регистрация: 12-12-08
Из: Ижевск
Пользователь №: 42 419



Цитата(aaarrr @ Feb 5 2009, 00:48) *
Это заблуждение. Лучше соблюдать стандарты с самого начала, чем потом исправлять уже растиражированные ошибки.


Даааа? Я буду рад если вы мне покажите нормальный стандарт под такую ОСь. POSIX не предлагать слишком монструозно для таких осей. miTRON -- хороший стандар однако уж больно там имена функций корявые мне своим русским умом японские сокращения не понять


--------------------
Вот пишу ОС, может кому пригодиться ;-)
скачайте http://sourceforge.net/projects/irtos/
и вот сайт ещё http://irtos.sourceforge.net/
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 6 2009, 17:51
Сообщение #50


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(ddiimmaa @ Feb 6 2009, 20:38) *
Даааа? Я буду рад если вы мне покажите нормальный стандарт под такую ОСь.

Сначала придется уяснить, о чем мы говорим:
Application Binary Interface
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Feb 6 2009, 17:52
Сообщение #51


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

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



Многие признают, что scmRTOS для микропроцессоров очень неплоха, но при этом останавливает, что она написана на C++ (хотя я лично в этом не вижу никаких проблем). Так вот для понимания что к чему, напишите ее на чистом С.
Go to the top of the page
 
+Quote Post
VslavX
сообщение Feb 7 2009, 07:56
Сообщение #52


embarrassed systems engineer
*****

Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038



Цитата(ddiimmaa @ Feb 6 2009, 19:38) *
miTRON -- хороший стандар однако уж больно там имена функций корявые мне своим русским умом японские сокращения не понять

Хм, а какое отношение имена функций имеют к идеологии?


Цитата(sergeeff @ Feb 6 2009, 19:52) *
останавливает, что она написана на C++

Имхо, в "плюсах" очень много возможностей для генерации неявного кода, чтобы грамотно пользовать C++ в embedded надо знать язык _очень_ хорошо. Вот здравое сомнение в своем уровне владения языком и останавливает.
Go to the top of the page
 
+Quote Post
dxp
сообщение Feb 7 2009, 14:32
Сообщение #53


Adept
******

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



Цитата(VslavX @ Feb 7 2009, 13:56) *
Имхо, в "плюсах" очень много возможностей для генерации неявного кода, чтобы грамотно пользовать C++ в embedded надо знать язык _очень_ хорошо. Вот здравое сомнение в своем уровне владения языком и останавливает.

Насчет много, это вы погорячились. Основной генератор неявного кода - шаблоны, исключения и RTTI. В embedded реально используются только шаблоны, вот с ними надо быть внимательным, но сюрпризов там нет - все достаточно легко прогнозируется. Остальное: неявная передача this в функции-члены при вызове, все эти vtpr/vtbl и прочее - это, во-первых, мелочи, во-вторых, это не оверхед, а реализация необходимой функциональности, которую в противном случае (например, на С) пришлось бы писать руками.

Не пренебрегайте плюсами, применяйте - очень скоро почувствуете уверенность и обратно уже не захочется. smile.gif


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Feb 7 2009, 14:57
Сообщение #54


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Обратно никогда не хочется!
Став все время работать на C++ вы забываете постепенно паттерны программирования на C и вам затруднительно использовать фреймворк который нынче весь исключительно на C написан. Или сидите на двух стульях и пишите медленнее обычного и делаете больше багов.
Либо вы вообще узкий специалист и это не ваша игра.

Освоение С++ меньше всего сводится к синтаксису и объектной модели, надо иметь экосистему, как модно нынче говорить, для использования этого языка.
C++ в embedded просто неконкурентоспособен.
Т.е. написав ось на C++ вам придется писать и фреймворк и прикладные стеки на C++
А это абсолютная утопия еще в ближайшие десятилетия.
Сделать заново целиком весь embedded фреймворк способны только гиганты типа Microsoft.
Но они уже сделали ставку на C# и .NET.
А нишу малых RTOS они занимают micro framework у которого HAL уровень на том же C написан.



Цитата(dxp @ Feb 7 2009, 16:32) *
Насчет много, это вы погорячились. Основной генератор неявного кода - шаблоны, исключения и RTTI. В embedded реально используются только шаблоны, вот с ними надо быть внимательным, но сюрпризов там нет - все достаточно легко прогнозируется. Остальное: неявная передача this в функции-члены при вызове, все эти vtpr/vtbl и прочее - это, во-первых, мелочи, во-вторых, это не оверхед, а реализация необходимой функциональности, которую в противном случае (например, на С) пришлось бы писать руками.

Не пренебрегайте плюсами, применяйте - очень скоро почувствуете уверенность и обратно уже не захочется. smile.gif
Go to the top of the page
 
+Quote Post
VslavX
сообщение Feb 7 2009, 23:09
Сообщение #55


embarrassed systems engineer
*****

Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038



Цитата(AlexandrY @ Feb 7 2009, 16:57) *
Обратно никогда не хочется!
Став все время работать на C++ вы забываете постепенно паттерны программирования на C и вам затруднительно использовать фреймворк который нынче весь исключительно на C написан. Или сидите на двух стульях и пишите

Ну, это смотря насколько в C++ углубиться. Идеи в ++ есть, немало, и среди них есть даже полезные. Я, например, довольно часто использую сам объектный подход - неважно, что функции обычные С-шные и изолирование методов и данных производится примитивно вручную на уровне файлов и операторов static. Да, нет перегрузки, наследования и прочего, но проект в целом видится яснее.
Цитата(AlexandrY @ Feb 7 2009, 16:57) *
Т.е. написав ось на C++ вам придется писать и фреймворк и прикладные стеки на C++

Имхо, при желании вполне можно подружить C++ приложение и C-framework. Придется поработать, не без этого, но - возможно. Меня скорее напрягает вероятная проблема с компиляторами - спектр применяемых архитектур широкий - ARM/XScale, PowerPC, X86, возможно скоро будет MIPS, маячит Nios/CortexM1. На "чистом C" как-то все пока получалось переносить без особых проблем. Но - все равно тема интересная, думаю надо таки ++ попробовать - на каком-то ограниченном проекте (и, кстати, на сишном фреймворке), только бы вот время на это все найти sad.gif. Паттерны вряд ли забудутся - я любитель частенько смотреть в ассемблерный листинг. smile.gif
Go to the top of the page
 
+Quote Post
yuri_t
сообщение Feb 8 2009, 08:00
Сообщение #56


Частый гость
**

Группа: Свой
Сообщений: 163
Регистрация: 24-08-05
Пользователь №: 7 937



IMXO, у С++ наиболее полезные вещи -это наследование и возможность создания полнофункциональных собственных типов-расширений языка (перегрузка операторов и т.д.).
В моей практике для embedded эти возможности требовались очень редко и поэтому С++ я использую только для программирования на PС под Windows, a для embedded - только С (по принципу KISS)

Кстати, при переходе от С к С++ и наоборот бывает весьма трудно переключиться с одного стиля программирования на
другой smile.gif
Go to the top of the page
 
+Quote Post
ddiimmaa
сообщение Feb 14 2009, 14:17
Сообщение #57


Участник
*

Группа: Validating
Сообщений: 27
Регистрация: 12-12-08
Из: Ижевск
Пользователь №: 42 419



Цитата(aaarrr @ Feb 6 2009, 21:51) *
Сначала придется уяснить, о чем мы говорим:
Application Binary Interface


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

Никаких int 80h как в Menuet или Linux с регистрами и прочее -> ведёт к сильной привязке к архитектуре, да и зачаем оно? лишняя головная боль.

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

Так вот, из всего что я знаю, так говорят, что BeOS -- объектно ориентирована и scrmRTOS. BeOs не видел, а вот последняя надо сказать очень элегантна сделана.


Жаль что это единственное исключение из правил.


--------------------
Вот пишу ОС, может кому пригодиться ;-)
скачайте http://sourceforge.net/projects/irtos/
и вот сайт ещё http://irtos.sourceforge.net/
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 14 2009, 14:57
Сообщение #58


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(ddiimmaa @ Feb 14 2009, 17:17) *
В таких ОСях думаю, что вводить специальный формат вызова не целесообразно. То есть как передавать параметры из функции в функцию из приложения в ядро, должен решать компилятор.

Компилятор все решить не может, некоторые вещи придется сделать самому в соответствии с ABI.

Простой прнимер: стандарт ARM ATPCS требует выравнивать стек при вызове функции по границе двух слов. Автор FreeRTOS на это требование забил, в результате мы имеем глючащие библиотеки плавучки на некоторых компиляторах.
Go to the top of the page
 
+Quote Post
ddiimmaa
сообщение Feb 14 2009, 20:47
Сообщение #59


Участник
*

Группа: Validating
Сообщений: 27
Регистрация: 12-12-08
Из: Ижевск
Пользователь №: 42 419



Цитата(aaarrr @ Feb 14 2009, 18:57) *
Компилятор все решить не может, некоторые вещи придется сделать самому в соответствии с ABI.

Простой прнимер: стандарт ARM ATPCS требует выравнивать стек при вызове функции по границе двух слов. Автор FreeRTOS на это требование забил, в результате мы имеем глючащие библиотеки плавучки на некоторых компиляторах.


Хм, а что ему мешает это выравнивать, что нельзя в файле port.c забить проверку стека при инициализации (если не делиться адрес на 8 то убавлять ещё 4 байта в стек поинтере?)?
А далее уже дело компилятора!

Или что? тут не поможет данное решение????????

Или далее компилятор уже не выравнивает?

"некоторые вещи придется сделать самому в соответствии с ABI."
Ну конечно к ним относиться стековые веши, согласен!!! Ясень пень что стек инициализировать надо в соотвесвии с ABI, но что тут определяться то?
Сама то ОС, главная часть то бишь! она каким тут боком?

Почему надо думать об ABI, зачем создавать какой то свой интерфейс вызовов, почему тупо не следовать уже написанному и то только в портируемой части? вот что я не пойму?Как? простите инициализация стека корреным образом влияет на ОС?


--------------------
Вот пишу ОС, может кому пригодиться ;-)
скачайте http://sourceforge.net/projects/irtos/
и вот сайт ещё http://irtos.sourceforge.net/
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 14 2009, 21:54
Сообщение #60


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(ddiimmaa @ Feb 14 2009, 23:47) *
Или что? тут не поможет данное решение????????

Поможет, конечно, хотя лажа на самом деле в tasks.c:
Код
#if portSTACK_GROWTH < 0
{
    pxTopOfStack = pxNewTCB->pxStack + ( usStackDepth - 1 );
}
#else
{
    pxTopOfStack = pxNewTCB->pxStack;    
}
#endif

Помимо направления роста стека (portSTACK_GROWTH) должен быть еще один параметр, определяющий пре- или постдекремент при стековых операциях.

Цитата(ddiimmaa @ Feb 14 2009, 23:47) *
Почему надо думать об ABI, зачем создавать какой то свой интерфейс вызовов, почему тупо не следовать уже написанному и то только в портируемой части? вот что я не пойму?Как? простите инициализация стека корреным образом влияет на ОС?

Да кто Вас призывает придумывать свой интерфейс вызовов? Как раз и нужно следовать существующему. Просто при создании ОС нужно учитывать все многообразие архитектур, а не забивать жестко направление того же стека.
Go to the top of the page
 
+Quote Post

5 страниц V  « < 2 3 4 5 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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