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

Кооперативная RTOS для STM32

6 hours ago, Chudik said:

Согласен :yes: 

Ну вы, блин, даёте) Выходит, что вы просто не знаете Си++:blum: Ибо только непосвящённый сразу подумает о том, что использование Си++ это использование STL. Естественно, что тащить в мелкий МК какой-нибудь std::string или std::map вряд ли уместно. Но они и не имеют никакого отношения к Си++. Си++ - это, прежде всего, объектно-ориентированное программирование. А оно само по себе не тянет никакого оверхэда.

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


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

4 часа назад, haker_fox сказал:

Выходит, что вы просто не знаете Си++

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

4 часа назад, haker_fox сказал:

объектно-ориентированное программирование.

Зачем это в МК-программировании?

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


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

40 minutes ago, mantech said:

Зачем это в МК-программировании?

 

1) Чтобы софт с ПК переносить на МК, который на плюсах написан. Не переписывать же его на Си :biggrin:

 

2) Чтобы игры писать для МК :to_become_senile:

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


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

43 minutes ago, mantech said:

Может и не знаю

Вы перепутали ответ) Я отвечал @Chudik)

 

43 minutes ago, mantech said:

бинарник почему-то тоже становится толще

Вы пробовали? Только честно) А что использовали? Просто так ПО толще не становится. Если используете STL, то толще может стать по причине привлечения библиотеки управления динамической памятью, или различного служебного кода для реализации всяких strign, list, map и т.п. Но я уже про это выше написал. Если используете шаблоны, так тут код толще быть не может, т.к. вы руками напишите тоже самое, только несколько раз и для нескольких типов данных. Да и вообще шаблоны разворачиваются компилятором во время компиляции. При наследовании может быть немного лишнего кода на вызов виртуальных функций и на таблицу.  Но его реально не очень много. Буквально десятки байт.

43 minutes ago, mantech said:

Зачем это в МК-программировании?

Мне так удобно, на Си больше писанины выходит. А результат тот же самый. Я имею в виду бинарь) Вот хороший пример. Тут, скорее всего, пугает синтаксис Си++))) Но оно стоит, чтобы изучить.

3 minutes ago, __inline__ said:

Не переписывать же его на Си

Если тащится что-то с QT, то на Си невозможно)))

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


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

57 минут назад, __inline__ сказал:

1) Чтобы софт с ПК переносить на МК, который на плюсах написан. Не переписывать же его на Си :biggrin:

Ну да - особенно классно он переносится с C#, на котором (имхо) сейчас подавляющая часть ПК-кода пишется.  :lol2:

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


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

27 minutes ago, jcxz said:

Ну да - особенно классно он переносится с C#, на котором (имхо) сейчас подавляющая часть ПК-кода пишется.  :lol2:

 

1) К великому счастью, олдскульная классика не использовала C#

 

2) Наши программисты, которые занимаются играми, пишут исключительно на C/C++

 

3) Как правило, есть выбор, на каком языке взять сорец для портирования (github.com)

 

4) Как правило номер два: всё что написано на С#, для меня лично не представляет интереса :biggrin:

 

1 hour ago, haker_fox said:

Если тащится что-то с QT, то на Си невозможно)))

  

А что там у ку-тэ тащится?  Я не знаком с этой кухней.  В играх в основном нужны SDL и BASS, Box2D, ZLIB.   Это всё хорошо ложится на МК через С++ :dance4:

Изменено пользователем repstosw

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


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

7 minutes ago, __inline__ said:

А что там у ку-тэ тащится?

Мы морды (графический энтерфэйс пользователя) делаем в QT на ПК, затем тащим на плату. На плате МК, конечно, работает под Linux. Но я с этой кухней не знаком. Т.е. мне неприятен линукс и программирование под него... отчасти)

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


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

21 minutes ago, haker_fox said:

Мы морды (графический энтерфэйс пользователя) делаем в QT на ПК, затем тащим на плату. На плате МК, конечно, работает под Linux. Но я с этой кухней не знаком. Т.е. мне неприятен линукс и программирование под него... отчасти)

 

Очень странно. Я всегда считал, что Linux - ОС именно для программистов.  Компилятор С++ там "искаропки".  SDL - очень мощная штука (кросс-платформенная), которая берет на себя весь специфический код по созданию окон, ввода данных, звука.  С помощью SDL очень просто перенести код с Винды на Линукс.

 

Любая программа  обязательно должна содержать разделение кода: на платформенно-зависимый и независимый.  Тогда останется работать только с первым.  Как правило, это - какой-нибудь низкоуровневый API.   Мне пришлось писать смостоятельно реализацию SDL - микширование нескольких каналов звука сделал самостоятельно, ввод нажатых клавиш тоже свой, работа с графикой своя.  Вышел своеобразный обрубок SDL под нужные МК.   Полагаю с QT можно также сделать...

Изменено пользователем repstosw

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


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

On 5/2/2020 at 4:10 PM, C2000 said:

Нужна RTOS с минимальными затратами. Особенно по ОЗУ. Чтобы не создавала своих стеков а работала  с общим стеком МК.

В связи с этим тот же FreeRTOS в корпоративном режиме не подходит, т.к. он так и так работает со своими стеками, просто шедулер вызывается не по таймеру а принудительно.

Кооперативная ось под Ардуино https://github.com/akouz/a_coos

Кооперативная ось на чистом С https://github.com/akouz/coos

Что характерно, вообще без ассемблерного кода.

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


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

3 часа назад, haker_fox сказал:

Вы перепутали ответ) Я отвечал @Chudik)

Это я понял, просто согласен был с ним...

3 часа назад, haker_fox сказал:

Вот хороший пример. Тут, скорее всего, пугает синтаксис Си++))) Но оно стоит, чтобы изучить.

Вот это скорей не пугает, а удручает... Согласитесь, в том приведенном примере, где код на Си, он гораздо приятнее читается и понимается... Мне это тоже важно, это как разные языки, я могу прочесть на английском, но русский мне все же приятнее :biggrin:

3 часа назад, haker_fox сказал:

Вы пробовали? Только честно) А что использовали? Просто так ПО толще не становится.

Пробовал, года 2 назад, какой-то простой пример, когда переходил с ИАРа на ГЦЦ, а с дуру настроил g++...

3 часа назад, __inline__ сказал:

Не переписывать же его на Си

Ну ясно дело, только вот зачем изначально на плюсах под МК писать - для меня загадка...

1 час назад, __inline__ сказал:

А что там у ку-тэ тащится?  Я не знаком с этой кухней.

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

1 час назад, __inline__ сказал:

Полагаю с QT можно также сделать...

Это фреймворк, он по идее и так платформеннонезависимый, в плане кода, к железу есть привязка, разумеется...

1 час назад, __inline__ сказал:

Я всегда считал, что Linux - ОС именно для программистов. 

Так вроде любая ОС для программистов, кроме закрытых... Только есть разные, прикладные и системные, тут скорей для прикладников, а программирование под МК - больше подходят системщики...

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


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

1 hour ago, mantech said:

Согласитесь, в том приведенном примере, где код на Си, он гораздо приятнее читается и понимается...

Что, думаю, самое разумное остаться при своих мнениях) На эту тему уже целый букет копьев сломано, и называется эта тема "холивар Си vs Си++)))

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


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

4 hours ago, mantech said:

Ну ясно дело, только вот зачем изначально на плюсах под МК писать - для меня загадка...

 

Системный уровень типа драйверов действительно  эффектно писать на Си.   С++ тут лишний.

Но вот когда нужно реализовать прикладной уровень, C++ очень удобен.  Взять хотя бы те же списки STL.  Очень гибко. На обычном Си это будет кривой велосипед.

Ну и как бонус С++ - можно сделать шифрование строк во время компиляции, чтобы усложнить задачу нескромным любителям смотреть HEX-код бинарников. :biggrin:

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


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

5 hours ago, mantech said:
Quote

А что там у ку-тэ тащится?  Я не знаком с этой кухней.

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

С какой стати это свой язык ?

Это что ни наесть С++.

Qt это билиотека виджетов (в основном).

image.thumb.png.3b810e4f5ffee45c32290a548f734fb2.png

1 hour ago, __inline__ said:

Ну и как бонус С++ - можно сделать шифрование строк во время компиляции, чтобы усложнить задачу нескромным любителям смотреть HEX-код бинарников. :biggrin:

Это как ?

9 hours ago, haker_fox said:

на Си больше писанины выходит.

Это где это больще ?

Вместо

uint32_t* gpio_ptr = (uint32_t*)0x40000000;

Надо писать

volatile Gpio* port = reinterpret_cast<volatile Gpio*>(0x40000000);

 

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


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

6 минут назад, dimka76 сказал:

С какой стати это свой язык ?

Это что ни наесть С++.

Это фреймворк, наподобие дотнета от мелкомягких. И да, написан он на сях, не врут на картинке, видимо на плюсах оттого и жирный наверно такой получился...

1 час назад, __inline__ сказал:

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

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

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


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

4 hours ago, haker_fox said:

Что, думаю, самое разумное остаться при своих мнениях) На эту тему уже целый букет копьев сломано, и называется эта тема "холивар Си vs Си++)))

Ну как холивар...
Будет смешно если кто-то ломанется писать на C++ поверх Azure RTOS.
С другой стороны, те кто юзает C++ уже будут избегать Azure RTOS ввиду сложностей адаптации. 
С плюсами есть конкретные суровые обломы в embedded и их как бы стоит знать. 

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


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

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

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

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

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

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

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

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

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

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