QuadMan 0 29 февраля, 2012 Опубликовано 29 февраля, 2012 · Жалоба Есть вопрос к разработчикам со стажем. Есть большой соблазн при разработке софта под TMS320F2812 написать с десяток классов и с ними работать. Но я что-то не видел, чтобы кто-то под данный чип использовал ООП - у кого-нибудь есть опыт использования ООП в чипах такого типа? Выгода есть? Спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 222 1 марта, 2012 Опубликовано 1 марта, 2012 · Жалоба А в чём проблема? Кто мешает? CCS поддерживает c++ - значит можно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sauris 0 1 марта, 2012 Опубликовано 1 марта, 2012 (изменено) · Жалоба Ну да, если есть некое количество лишней памяти и мипсов, которые никак не удается на что-нить полезное потратить, то легко. И выгода налицо - память не пустует ;) Изменено 1 марта, 2012 пользователем SAURIS GmbH Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
QuadMan 0 1 марта, 2012 Опубликовано 1 марта, 2012 · Жалоба Ну да, если есть некое количество лишней памяти и мипсов, которые никак не удается на что-нить полезное потратить, то легко. И выгода налицо - память не пустует ;) Ну, мне, как человеку, в основном занимающемуся десктопной разработкой, гораздо ближе мышление в "стиле ООП". :) Вот я и думаю - на сколько проигрыш в производительности ухудшит ситуацию. Вроде как только объем памяти может пострадать на хранение структур, а по производительности должно быть тоже самое. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sauris 0 1 марта, 2012 Опубликовано 1 марта, 2012 · Жалоба а по производительности должно быть тоже самое. Ну не считая потерь на всякие там вызовы виртуальных методов по таблицам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
QuadMan 0 1 марта, 2012 Опубликовано 1 марта, 2012 · Жалоба Ну не считая потерь на всякие там вызовы виртуальных методов по таблицам. мда... надо будет попробовать создать один-два класса, посмотреть во что это выльется по памяти. просто как раз и хотел узнать может есть ссылочки по этой теме - кто-то использует ООП и доволен :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 222 1 марта, 2012 Опубликовано 1 марта, 2012 · Жалоба Ну да, если есть некое количество лишней памяти и мипсов, которые никак не удается на что-нить полезное потратить, то легко. И выгода налицо - память не пустует ;) с++ и мипсы/память - никак между собой не связаны. Алгоритм на с++ не отличается по занимаемой памяти/мипсам от реализации его на си. А вот кривость рук и компетентность разработчика впрямую связаны с размером/производительностью. Ну не считая потерь на всякие там вызовы виртуальных методов по таблицам. А что мешает НЕ ИСПОЛЬЗОВАТЬ виртуальные методы? Или другими словами - кто их заставляет использовать? ЗЫ: всегда пишу на все контроллеры на с++ при полном отсутствии вирт. методов и динамической памяти, и пользованием в основном статическими конструкторами. При этом никто не мешает пользоваться другими прелестями ООП, типа перегрузки функций/операторов, порождением/наследованием, ограничением области видимости и доступа класса и т.п. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DRUID3 0 1 марта, 2012 Опубликовано 1 марта, 2012 · Жалоба мда... надо будет попробовать создать один-два класса, посмотреть во что это выльется по памяти. это смешно... так ничего не выявится... Все равно что пальчем в небо... Кстати и на C можно зарубить идею в корне... C TMS не работал никогда, но это же у них в официальных прмерах для DSP комплексные числа представлены структурами на 2-е простые переменные каждая? Вот она - классика куда деть 30% памяти и 10 % производительности... с++ и мипсы/память - никак между собой не связаны. Алгоритм на с++ не отличается по занимаемой памяти/мипсам от реализации его на си. ммм... спорное утверждение... если не отличается уж совсем, то где там C++? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 222 1 марта, 2012 Опубликовано 1 марта, 2012 · Жалоба ммм... спорное утверждение... если не отличается уж совсем, то где там C++? Где "там"? с++ - это язык на котором написаны ИСХОДНИКИ, а память у вас в контроллере занимает СКОМПИЛЁННЫЙ КОД, а не исходники. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DRUID3 0 1 марта, 2012 Опубликовано 1 марта, 2012 · Жалоба Где "там"? с++ - это язык на котором написаны ИСХОДНИКИ, а память у вас в контроллере занимает СКОМПИЛЁННЫЙ КОД, а не исходники. не поверите я знаю это... но Вы видимо еще не совсем прониклись "механистикой" всего этого дела - читайте, разбирайтесь... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 222 1 марта, 2012 Опубликовано 1 марта, 2012 · Жалоба не поверите я знаю это... но Вы видимо еще не совсем прониклись "механистикой" всего этого дела - читайте, разбирайтесь... не поверю Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Sauris 0 1 марта, 2012 Опубликовано 1 марта, 2012 · Жалоба с++ и мипсы/память - никак между собой не связаны. А я про C++ ничего не говорил. Я говорил лишь про ООП, который подразумевает всяческое там наследование и соотв. расходы. А так - писать на С++, но не использовать ООП - так пжалста. Но речь тут не про С++, а именно про ООП. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dxp 53 1 марта, 2012 Опубликовано 1 марта, 2012 · Жалоба Никаких особых тормозов ООП в С++ не добавляет. Вызов виртуальной функции - это обычно пара-тройка дополнительных команд процессора (зависит от конкретного процессора). По памяти тоже не бог весть что - один указатель на объект класса и одна таблица на весь класс - это всё считанные байты. Всё это практически не заметно даже на мелочи вроде AVR, что уж говорить о процах класса TMS. Что касается применения ООП, то если решаемая задача эффективно ложится на ООП и её реализацию в виде иерархии классов С++, то без сомнения ООП и надо применять. Если писать это на голом С, то там придётся применять аналогичные механизмы (таблицы указателей на функции и прочее), только это будет "закат Солнца вручную" со всеми вытекающими. Альтернативный вариант будет не лучше. Давно и безпроблемно применяем ООП С++ в embedded проектах на разных процах (AVR, MSP430, Blackfin и др). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
QuadMan 0 2 марта, 2012 Опубликовано 2 марта, 2012 · Жалоба Никаких особых тормозов ООП в С++ не добавляет. Вызов виртуальной функции - это обычно пара-тройка дополнительных команд процессора (зависит от конкретного процессора). По памяти тоже не бог весть что - один указатель на объект класса и одна таблица на весь класс - это всё считанные байты. Всё это практически не заметно даже на мелочи вроде AVR, что уж говорить о процах класса TMS. Что касается применения ООП, то если решаемая задача эффективно ложится на ООП и её реализацию в виде иерархии классов С++, то без сомнения ООП и надо применять. Если писать это на голом С, то там придётся применять аналогичные механизмы (таблицы указателей на функции и прочее), только это будет "закат Солнца вручную" со всеми вытекающими. Альтернативный вариант будет не лучше. Давно и безпроблемно применяем ООП С++ в embedded проектах на разных процах (AVR, MSP430, Blackfin и др). Спасибо! Сейчас как раз переписываю код под ООП. Получается гораздо красивее и понятнее. Действительно, многое зависит от задачи! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 222 2 марта, 2012 Опубликовано 2 марта, 2012 · Жалоба А я про C++ ничего не говорил. Я говорил лишь про ООП, который подразумевает всяческое там наследование и соотв. расходы. А так - писать на С++, но не использовать ООП - так пжалста. Но речь тут не про С++, а именно про ООП. Под "с++" я и имел в виду ООП. Прочитайте то моё сообщение до конца. "всяческое там наследование и соотв. расходы" - наследование не приводит к доп. расходам в общем случае (если нет вирт. методов). ... Давно и безпроблемно применяем ООП С++ в embedded проектах на разных процах (AVR, MSP430, Blackfin и др). Полностью согласен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться