|
|
  |
FreeRTOS vs. scmRTOS, Также eCOS, uLinux, TNKernel для Cortex M3: Выбираем ОС |
|
|
|
Apr 13 2010, 11:13
|

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

|
Цитата(Аматер @ Apr 13 2010, 17:12)  оказалось что от С++ в микроконтроллере больше проблем возникает чем преимуществ. Можно узнать, какие проблемы возникают от С++ в микроконтроллерах? И еще мне не понятна связь между языком ОС и языком прикладной программы. Что мешает, используя ОС, написанную на С, писать свой код на С++? И наоборот - если взять, например, scmRTOS, то что мешает писать свой код на С? Не думаю, что у Си-программистов вызывает трудности необходимость использования нотации <object_name>.<function-member_name>. А больше там ничего плюсового в явном виде писать не надо. Доподлинно знаю людей, который не знают С++, но это им нисколько не мешает использовать RTOS, написанную на С++.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
|
Apr 15 2010, 07:01
|

Частый гость
 
Группа: Участник
Сообщений: 95
Регистрация: 3-01-10
Из: Рождественно
Пользователь №: 54 616

|
Цитата(dxp @ Apr 13 2010, 15:28)  Можно узнать, какие проблемы возникают от С++ в микроконтроллерах?
И еще мне не понятна связь между языком ОС и языком прикладной программы. Что мешает, используя ОС, написанную на С, писать свой код на С++? И наоборот - если взять, например, scmRTOS, то что мешает писать свой код на С? Не думаю, что у Си-программистов вызывает трудности необходимость использования нотации <object_name>.<function-member_name>. А больше там ничего плюсового в явном виде писать не надо. Доподлинно знаю людей, который не знают С++, но это им нисколько не мешает использовать RTOS, написанную на С++. Для меня проблемой было смешивать C++ и С функции. Компилятор выдавал кучу предупреждений. Встроенный в Keil монитор почему то не работал. Признаю что мои проблемы были от недостаточных знаний, но разбиратся времени не хватило. В программировании на С++ все было нормально потому что опыт объектного программирования есть, в том числе и на MS C++. Вообще С++ мне больше нравится и из за него с scmRTOS связался. Только примерчика под Keil тогда не было. Еще jtag и мониторо от Keil мне дороже С++.
|
|
|
|
|
Apr 18 2010, 13:04
|
Знающий
   
Группа: Участник
Сообщений: 691
Регистрация: 24-05-07
Пользователь №: 27 945

|
Изучил мануал scmRTOS и пробежался по исходникам, понравилась  Использование C++ выглядит очень оправданным, понравились каналы на шаблонах, интересная реализация критических областей с помощью экземпляра класс TCritSect. Думаю, применять С++ актуально. Исходники показались понятными хотя кое-где нет единых правил именования методов, как мне показалось. И два варианта планировщика не совсем понятны, здесь нужно наверное знать еще аппаратные нюансы. Пример без проблем запустился на аппаратной платформе с эмулятором. Пробовал TNKernel, пример предназначенный для запуска в C-Spy, в свойствах проекта указал использование J-Link, проект откомпилировался, но не запустился, выдал ошибку. Возможно мало было только указать эмулятор, что-то еще нужно было сделать, но дальше копать не стал. На использование С++ уже смотрю более перспективно, думаю буду выбирать только из С++ операционных систем. Подскажите, что еще есть для моей платформы, только бесплатное, без необходимости открывать исходный код, нарушать требования лицензирования не хочу, авторов нужно уважать. Еще хотел бы реализацию файловой системы, TCP/IP стек и библиотеку USB на C++. RTX не хочу, выбрал IAR, к тому же хочу использовать не коммерческую ОС.
Сообщение отредактировал _Макс - Apr 18 2010, 13:06
|
|
|
|
|
Nov 10 2010, 14:23
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(_Макс @ Apr 18 2010, 16:04)  Подскажите, что еще есть для моей платформы, только бесплатное, без необходимости открывать исходный код, нарушать требования лицензирования не хочу, авторов нужно уважать. А кто вас просит открывать ваш код? Где это такие странные требования? Если меняете код самой ОС (например, новый порт или сервис) - таки да. А ваши приложения - они ваши. Я так понимаю.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Nov 10 2010, 15:21
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Читаем:Цитата Copyright © 2003-2007, Harry E. Zhurov
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Вот всё, что от вас требуется - оставить упоминание о копирайте в исходниках.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Nov 11 2010, 06:45
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646

|
Цитата(_Макс @ Nov 10 2010, 19:13)  Вы о каких ОС сейчас говорите? Под какой лицензией? Конкретно эта - scmRTOS. Там же и ссылка сверху. А вот FreeRTOS: Цитата The FreeRTOS source code is licensed by the GNU General Public License (GPL) with an exception. The full text of the GPL is available here. The text of the exception is available at the bottom of this file.
The exception permits the source code of applications that use FreeRTOS solely through the API published on this website to remain closed source, thus permitting the use of FreeRTOS in commercial applications without necessitating that the whole application be open sourced. The exception can only be used if you wish to combine FreeRTOS with a proprietary product and you comply with the terms stated in the exception itself.
The FreeRTOS download also includes demo application source code, some of which is provided by third parties AND IS LICENSED SEPARATELY FROM FREERTOS. Цитата Do I have to open source my application code that makes use of the FreeRTOS services? No, as long as the code provides functionality that is distinct from that provided by FreeRTOS Do I have to open source my changes to the kernel? Yes Холодильник - государственный. А холод, который он производит - наш.
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
Nov 11 2010, 09:02
|
Гуру
     
Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847

|
Цитата(_Макс @ Nov 10 2010, 15:07)  Не могу найти какие минимальные требования по памяти для eCos, если оставить только планировщик и средства межпроцессного взаимодействия, как в scmRTOS. Соберите нужную конфигурацию и посмотрите. Будет не много (порядка десятков KB). Но на МК типа AT Tiny она однозначно не встанет ни в какой конфигурации Цитата Вообще чем хороша eCos на ваш взгляд? Конфигурируемостью.
|
|
|
|
|
Nov 11 2010, 09:47
|
Гуру
     
Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847

|
Цитата Будет она работать с компилятором IAR? Нет, и не будет. Цитата То есть придется самому сначала делать порт. Угу. Но для того, что бы оценить потребности САМОЙ ОС порт делать не обязательно. Возьмите конфигурацию на тот же (или похожий) процессор и соберите. Количество занятых ресурсов будет приблизительно такими же, как и для вашей (еще не портированной) конфигурации.
|
|
|
|
|
Nov 11 2010, 10:43
|
Знающий
   
Группа: Участник
Сообщений: 691
Регистрация: 24-05-07
Пользователь №: 27 945

|
Чем eCos лучше той же TNKernel или FreeRTOS? Вопрос к тем кто пользовался, почему вы остановились на eCos и какие ваши впечатления были потом? Я сейчас остаюсь в неведении о том, что выбрать. eCos привлекает тем, что в ней много разных пакетов, но впихуемость всего этого в тот же STM32 для меня остается под вопросом, в списке поддерживаемой аппаратуры eCos перечислены процессоры значительно более мощные нежели Cortex-M3. Думается, что ОС это все же более менее универсальный компонент для разных проектов, выбранная ОС должна иметь как можно более широкие возможности и быть приемлемой в как можно более широком ряде проектов, чтобы использоваться одни и те же знания в большем числе проектов, сокращая время на изучения новых дублирующих инструментов/ресурсов. Цитата(XVR @ Nov 11 2010, 11:47)  Нет, и не будет. Угу. Ок, в качестве компилятора принимается GCC. Какую можно использовать IDE? Нужна либо открытая, либо крякаемая. Желательно кроссплатформенная. Как и чем отлаживать программу? У меня JLink.
Сообщение отредактировал _Макс - Nov 11 2010, 10:39
|
|
|
|
|
  |
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|