Перейти к содержанию
    

Как вариант можно еще RTX от Keil рассмотреть, потому что маленькая и поддерживается компилятором.

Я с год назад выбирал между RTX, FreeRTOS и scmRTOS.

scmRTOS потому что понравилась поддержка С++. Но оказалось что от С++ в микроконтроллере больше проблем возникает чем преимуществ. Опять же размер программы для меня важен.

FreeRTOS вроде тоже неплохой вариант, но преимуществ для меня относительно Keil не было и просто поленился переходить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

оказалось что от С++ в микроконтроллере больше проблем возникает чем преимуществ.

Можно узнать, какие проблемы возникают от С++ в микроконтроллерах?

 

И еще мне не понятна связь между языком ОС и языком прикладной программы. Что мешает, используя ОС, написанную на С, писать свой код на С++? И наоборот - если взять, например, scmRTOS, то что мешает писать свой код на С? Не думаю, что у Си-программистов вызывает трудности необходимость использования нотации <object_name>.<function-member_name>. А больше там ничего плюсового в явном виде писать не надо. Доподлинно знаю людей, который не знают С++, но это им нисколько не мешает использовать RTOS, написанную на С++.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно узнать, какие проблемы возникают от С++ в микроконтроллерах?

 

И еще мне не понятна связь между языком ОС и языком прикладной программы. Что мешает, используя ОС, написанную на С, писать свой код на С++? И наоборот - если взять, например, scmRTOS, то что мешает писать свой код на С? Не думаю, что у Си-программистов вызывает трудности необходимость использования нотации <object_name>.<function-member_name>. А больше там ничего плюсового в явном виде писать не надо. Доподлинно знаю людей, который не знают С++, но это им нисколько не мешает использовать RTOS, написанную на С++.

Для меня проблемой было смешивать C++ и С функции. Компилятор выдавал кучу предупреждений. Встроенный в Keil монитор почему то не работал. Признаю что мои проблемы были от недостаточных знаний, но разбиратся времени не хватило. В программировании на С++ все было нормально потому что опыт объектного программирования есть, в том числе и на MS C++.

Вообще С++ мне больше нравится и из за него с scmRTOS связался. Только примерчика под Keil тогда не было. Еще jtag и мониторо от Keil мне дороже С++.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Изучил мануал scmRTOS и пробежался по исходникам, понравилась :) Использование C++ выглядит очень оправданным, понравились каналы на шаблонах, интересная реализация критических областей с помощью экземпляра класс TCritSect. Думаю, применять С++ актуально. Исходники показались понятными хотя кое-где нет единых правил именования методов, как мне показалось. И два варианта планировщика не совсем понятны, здесь нужно наверное знать еще аппаратные нюансы. Пример без проблем запустился на аппаратной платформе с эмулятором.

 

Пробовал TNKernel, пример предназначенный для запуска в C-Spy, в свойствах проекта указал использование J-Link, проект откомпилировался, но не запустился, выдал ошибку. Возможно мало было только указать эмулятор, что-то еще нужно было сделать, но дальше копать не стал.

 

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

 

Еще хотел бы реализацию файловой системы, TCP/IP стек и библиотеку USB на C++.

 

RTX не хочу, выбрал IAR, к тому же хочу использовать не коммерческую ОС.

Изменено пользователем _Макс

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не могу найти какие минимальные требования по памяти для eCos, если оставить только планировщик и средства межпроцессного взаимодействия, как в scmRTOS. Вообще чем хороша eCos на ваш взгляд?

Изменено пользователем _Макс

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если вопрос лицензионности не волнует - ставите кроссворкс (даже ломать не надо), выдираете исходники CTL (открыто лежат отдельной папкой), выдираете по ним хелп (весьма нормально построенный) и наслаждаетесь.

есть порты под ARM7/Cortex/AVR/MSP430.

очень красивый и понятный стиль исходников. только статическое (compile-time) выделение памяти. небольшой футпринт в памяти.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

А кто вас просит открывать ваш код?

Где это такие странные требования?

 

Если меняете код самой ОС (например, новый порт или сервис) - таки да.

А ваши приложения - они ваши.

Я так понимаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А кто вас просит открывать ваш код?

Где это такие странные требования?

 

Если меняете код самой ОС (например, новый порт или сервис) - таки да.

А ваши приложения - они ваши.

Я так понимаю.

Мне кажется после компиляции в бинарнике можно найти паттерны соответствующие определенному (скомпилированному тем же компилятором) коду. Таким образом если кто-то захочет докопаться то может это сделать, достаточно слить бинарник с устройства и провести такой анализ. Шифровать firmware можно далеко не в каждом дизайне.

Изменено пользователем _Макс

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Читаем:

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.

 

Вот всё, что от вас требуется - оставить упоминание о копирайте в исходниках.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот всё, что от вас требуется - оставить упоминание о копирайте в исходниках.

Вы о каких ОС сейчас говорите? Под какой лицензией?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы о каких ОС сейчас говорите? Под какой лицензией?

Конкретно эта - 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

 

Холодильник - государственный.

А холод, который он производит - наш.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не могу найти какие минимальные требования по памяти для eCos, если оставить только планировщик и средства межпроцессного взаимодействия, как в scmRTOS.
Соберите нужную конфигурацию и посмотрите. Будет не много (порядка десятков KB). Но на МК типа AT Tiny она однозначно не встанет ни в какой конфигурации :rolleyes:

Вообще чем хороша eCos на ваш взгляд?
Конфигурируемостью.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Соберите нужную конфигурацию и посмотрите. Будет не много (порядка десятков KB). Но на МК типа AT Tiny она однозначно не встанет ни в какой конфигурации :rolleyes:

Конфигурируемостью.

Пока еще не умею с ней работать и думаю стоит ли учиться. Вижу она четко ориентированна на GCC. Я пользую IAR вместе со средой разработки. А что теперь? Куда это все прикручивать? Будет она работать с компилятором IAR? Драйверов под тот же STM32 в ней нет. То есть придется самому сначала делать порт.

Изменено пользователем _Макс

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Будет она работать с компилятором IAR?
Нет, и не будет.

То есть придется самому сначала делать порт.
Угу.

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чем eCos лучше той же TNKernel или FreeRTOS? Вопрос к тем кто пользовался, почему вы остановились на eCos и какие ваши впечатления были потом? Я сейчас остаюсь в неведении о том, что выбрать. eCos привлекает тем, что в ней много разных пакетов, но впихуемость всего этого в тот же STM32 для меня остается под вопросом, в списке поддерживаемой аппаратуры eCos перечислены процессоры значительно более мощные нежели Cortex-M3.

 

Думается, что ОС это все же более менее универсальный компонент для разных проектов, выбранная ОС должна иметь как можно более широкие возможности и быть приемлемой в как можно более широком ряде проектов, чтобы использоваться одни и те же знания в большем числе проектов, сокращая время на изучения новых дублирующих инструментов/ресурсов.

 

Нет, и не будет.

Угу.

Ок, в качестве компилятора принимается GCC. Какую можно использовать IDE? Нужна либо открытая, либо крякаемая. Желательно кроссплатформенная. Как и чем отлаживать программу? У меня JLink.

Изменено пользователем _Макс

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...