- Коллеги, вопрос. Есть IAR, есть либа STemWin в виде
скомпилированного объектника без исходников. Есть ли способ функции
либы положить в нужном регионе флеша? - 0men(03.10.2022 17:31, ARM, полностью)
- У нас сотрудник, который код пишет, вообще виндовые компиляторы не
признает. Полный хардкор: линукс, гну си и нат ОС. - Visitor(03.10.2022 19:35)
- Можно, только не функции, а секции. Читай про линкер, его опции и
файл конфигурации линкера (.icf). - ЫЫyкпy(03.10.2022 18:26)
- Думаю, что бинарный код можно положить в любом месте флеша, только
скорее всего ... работать там он не будет :), т.к. компиляторы
обычно не заботятся о том, чтобы компилируемый ими код не содержал
абсолютной адресации. - Kceния(03.10.2022 18:14)
- Первый боевой опыт мобилизованного, реконструктора исторических
баталий Solo(9 знак., 06.10.2022 12:19, Off, ссылка, youtube, полностью)
- санкции?? обратил внимание, что OperaGX давно не предлагала
перезагрузиться после обновления :) заподозрил неладное, проверил Adept(510 знак., 06.10.2022 11:28, Off, картинка, полностью)
- Чиста поржать. Трудности перевода с китайского. - Kpoк(1 знак., 05.10.2022 22:25, Off, ссылка, полностью)
- Не нашёл пост, к котормоу уместно было бы приложить. Хоят должны бы
быть. POV(1 знак., 29.09.2022 11:50, dao, картинка, полностью)
- Ещё уточнение: получается, можно мешать без проблем при передаче
линковщику объектники в одном проекте С и С++, если смогу среде
разработки объяснить, как из компилировать? - Dingo(06.10.2022 06:56)
- Тоже спрошу. Как оформляются обработчики прерываний? Поймал себя
недавно на том, что "и попробовал бы Цэ++, но не знаю, как делается
...". Это одна из базовых вещей. - Dingo(03.10.2022 06:53)
- Реализация очень сильно зависит от архитектуры и возможностей
контроллера прерываний. VVB(3555 знак., 06.10.2022 10:26)
- Просто вызываю из прерывания любую функцию любого класса. Зачем ещё
что-то выдумывать? - Ale3000(06.10.2022 08:34)
- Если бы разработчики С++ захотели, они бы, вероятно, легко сделали
это. Tyмблep(1006 знак., 03.10.2022 13:08)
- никак. Nikolay801_(733 знак., 03.10.2022 10:51)
- Не-не-не, что-то не то. Вот в plain C есть обработчик, функция void my_isr(void); - что в этом случае у плюсов? Класс? Функция? Может ли extern "C" void my_isr(void) {} внутри себя вызывать методы классов? Если буфер реализован
классом, как из обработчика положить в него данные? Как проверить
состояние пина, если порт-пин описан сущностями Ц++, через те же
темплейты, например? - Dingo(03.10.2022 09:57)
- Кстати, в жизни всё гораздо проще. Обработчк прерывания - обычная
функция, в которой делается ровно то что она должна делать. Надо
флаг в регистре сбросить - сбрасываем флаг с помощью CMSIS. Надо
светодиодом мигнуть - дёргаем метод класса светодиода. Без всяких
комплексов. - VladislavS.(03.10.2022 09:15)
- Самое простое - обычные функции в плюсах никто не запрещал. Чуть
посложнее методы классов делать обработчиками, но и это возможно, с
опытом придёт. - VladislavS.(03.10.2022 07:07)
- Любопытно, вот есть класс UART, в нем обработчик прерывания void
i();. В программе создаем два объекта UART u1, u2; Как привязать
u1.i() и u2.i() к разным физическим прерываниям, не используя
Сишных прокладок? - AlexBi(03.10.2022 08:22)
- Никак. Т.к. ядро процессора/контроллера не умеет одновременно
указатель на объект (this) и адрес/смещение функции вычислить. - Costic(03.10.2022 16:50)
- Как вариант. Переносите таблицу прерываний в ОЗУ. В конструктор
класса UART передаёте его номер и создаёте объекты UART u1(1),
u2(2); Конструктор класса UART устанавливает свой обработчкик в
таблицу векторов прерываний при создании объекта. Можно и другие
варианты придумать, была бы необходимость. Но прокладка - самое
простое. Мир от её использования не перевернётся. - VladislavS.(03.10.2022 10:06)
- Так элементарно. Обработчик прерывания - обычная Си'шная функция
extern "C" { void Uart1Int(void) { u1.i(); } void Uart2Int(void) {
u2.i(); } } - =AlexD=(03.10.2022 08:28)
- Это и есть сишные прокладки, нет? КМК, значительная часть проблем
плюсов в том, что плюсовая публика излишне идеологизирована: "Нет
сишным прокладкам! Мы тут плюсы или где?" - SciFi(03.10.2022 08:35)
- Это ваши тараканы какие-то. Почему вы боитесь "прокладок"? Они даже
накладных расходов не несут. Смотрите примеры: VladislavS.(1068 знак., 03.10.2022 08:54)
- static не годится, т.к. для u1 и u2 он будет одинаковый. Сишные
прокладки не удобны, т.к. u1 может быть внутри другого объекта, а
тот внутри еще чего-то, либо вообще создаваться динамически. Вся
красота теряется. - AlexBi(03.10.2022 09:12)
- Это прекрасно. Только непонятно, зачем вообще нужен класс, когда
там всего две функции. Лишняя сущность же. - SciFi(03.10.2022 08:56)
- Или вот пример обработчиков с шаблонным классом. В контроллере два
USB, класс один, объектов два, обработчиков прерываний два. VladislavS.(1 знак., 03.10.2022 09:33, картинка)
- А я бы привёл другой пример. Да, с лишним сгенерённым кодом, но
может быть он понятнее "бедуинам"? Costic(541 знак., 03.10.2022 17:09, ссылка)
- вот, похоже на ответ. То есть из plain C можно обращаться уже к C++
выходит? - Dingo(03.10.2022 10:09)
- Кто-нибудь рискнёт сказать, что тут прокладки и это "недостаточно
С++"? Для реализации подобного на С две почти одинаковые функции
придётся писать? Только не надо про макросы... - VladislavS.(03.10.2022 09:52)
- Почему же не надо про макросы? Шаблоны это грубо замена макросам.
Предложенный пример спокойно реализуется через склейку. Только вся
натянутость шаблонных решений (плевать шаблоны плюсов или макросы)
не помогает навигации/отладке. Не буду говорить плохо о плюсах, а
хорошо не могу - у меня на них идиосинкразия. НО пример,
КМК,подобран именно идеологический и выбран вариант получения
экземпляров метода в зависимости от параметра с прицелом на
не-рантайм. В Сях не-рантайм - это Vit(263 знак., 03.10.2022 11:33)
- На С писать придется примерно так же, как на С++, те же две
функции, или одну, напичканную if-ами. Или я чего-то не понимаю ... AlexBi(1 знак., 03.10.2022 10:29, картинка)
- Чтобы не писать в каждой функции аргументом указатель на структуру
с данными. Экономия пальцекликов ;-) Но вообще то прикольно, когда
интеллектуальный помощник редактора сам вываливает тебе список
методов после точки. Можно не морщить моск и не заглядывать в
хедер. Удобненько. - =AlexD=(03.10.2022 09:03)
- Что значит две функции? Это же пример. Класс может быть сколь
угодно сложным. Один из методов - обработчик прерываний. Вот вам
класс с тремя навороченными методами, один из которых обработчик
прерываний. VladislavS.(155 знак., 03.10.2022 09:00)
- Плюсы в отличии от Си не универсальны, увы. Это совершенно очевидно
любому, кто с ними хоть немного поработал. И отсутствие стандарта
(хотя бы _дефакто) на именование функций в ASM выхлопе - одна из
проблем. Можно извернуться, забиндить метод с аргументом и как-то
прописать указатель в таблицу векторов, но это по сути будет ровно
то-же самое, что я написал, только через жопу. - =AlexD=(03.10.2022 08:45)
- Спрошу здесь. Каким умным словом называется, когда вставляешь
объект одного класса в другой класс? - IBAH(30.09.2022 14:20)
- В книжке Дж. Янга по Visual C++ это называется встроенный класс - il-2(01.10.2022 06:53)
- "Ну, Красная Шапочка, выбирай, либо, дружественное слияние, либо,
недружественное поглощение..." - mse homjak(30.09.2022 21:03)
- Из зала подсказывают: инкапсуляция - Nikolay_Po(30.09.2022 19:32)
- Коитус? - Kpoк(30.09.2022 18:21)
- Объект становится членом класса. - VladislavS.(30.09.2022 15:03)
- Еще вопрос. В этом случае, в какой последовательности вызовутся
конструкторы? - IBAH(30.09.2022 14:23)
- Сразу не понял вопрос. Первыми будут вызваны конструкторы членов
класса, затем конструктор объединяющего класса. Этот код выведет
АB. VladislavS.(148 знак., 30.09.2022 15:18)
- а если так funk(){static B b; }. Конструктор вызовется при первом
вхождении в блок? - IBAH(30.09.2022 15:43)
- Спасибо. А вот если объект объявлен внешним к main(). Когда
вызовется конструктор? ведь перед маин идет код "создания среды"... - IBAH(30.09.2022 15:41)
- Внешний к main это глобальный. Зависит от того как старатп написал.
Обычно сразу после инициализации сегментов данных перед вызовом
main. VladislavS.(19 знак., 30.09.2022 16:07, ссылка)
- чуть не в тему, но влезу. пока писали на сях, то обсуждали вопросы
целевой задачи - как настроить порт, оверсемплинг АЦП, как
настроить куб чтобы он USB хост сделал, ну и прочие чисто целевые
для решаемых задач проблемы. Mahagam(209 знак., 30.09.2022 15:51)
- На самом деле работа добавляется только в начале. Как только вы
обрастаете библиотекой классов скорость разработки сильно
вырастает. - VladislavS.(30.09.2022 16:05)
- да как только обрастаешь любой библиотекой - скорость работы
возрастает. но на форумах плюсовики нихрена не обсуждают целевые
задачи, а только и обсуждают лямбды, монады, виртуальные функции и
прочую чисто языковую ересь. - Mahagam(30.09.2022 16:10)
- А кому интересны МОИ целевые задачи? А вот языковые фишки у всех
одинаковые. А так как назвать их простыми для понимания нельзя, вот
и обсуждают. - VladislavS.(30.09.2022 16:15)
- здесь вот как раз и обсуждали целевые задачи. потому что языковых
проблем было совсем немного. - Mahagam(30.09.2022 16:18)
- А как обсуждение целевых задач связано с языком? В каком регистре
какой бит установить вообще языконезависимый вопрос. Как вы
понимаете С или С++ разработчик обсуждает целевой вопрос? - VladislavS.(30.09.2022 16:23)
- ещё раз. тут практически не наблюдалось тем с языковыми вопросами.
при этом форум - весьма живой. что при этом обсуждают - можете сами
полистать и посмотреть. а тематические форумы, где собираются
преимущественно пищущие на плюсах, на 90% засраны чисто языковыми
вопросами. - Mahagam(30.09.2022 16:29)
- Не замечал. Возможно, бывает, кто-то выкладывает примеры кода по
целевому вопросу на плюсах, вызывая тем самым непонимание у
собеседников, тогда может начаться срач. - VladislavS.(30.09.2022 16:35)
- Это из серии "Смотри как я могу!" - IBAH(30.09.2022 16:47)
- Бывает и выпендрёжь, конечно, но не обязательно. Ну просто есть
кого-то рабочик код на плюсах, не переписывать же его для форума
специально. - VladislavS.(30.09.2022 16:49)
- Проблема с терминологией. Где заканчивается "Си с классами" и
начинаются плюсы? Имхо, подходы в плюсах(в Си с классами ) в
некотором роде конечно удобнее, но все прекрасно реализуется на
теплом-ламповом Си. А все эти метапрограммирования в топку. Что и
иллюстрирует картинка ТС . - IBAH(30.09.2022 16:55)
- Вы просто не умеете его готовить. Я бы мог бесконечно показывать
примеры, но это непробиваемо. Сразу авторитетно докажут, что у них
для этого есть конфигуратор/скрипт/утилита и это тру вэй.
Проходили. - VladislavS.(30.09.2022 17:01)
- Пишите статью и ссылку сюда. "Ябпочитал" - Dingo(30.09.2022 17:22)
- Статья, в отличии от пятничного трёпа, требует времени. На просто
почитать есть пример кода, который ни одним макросом не напишете. VladislavS.(98 знак., 30.09.2022 17:37, ссылка)
- Вот так хорошая книга о С++ для эмбедерства и никак не напишется :/ - symbions(30.09.2022 23:35)
- С++ для эмбеддерства это всё равно что чернила для пятого класса.
Если вы понимаете как работает язык, то без всяких умных книжек не
будете в контроллерах применять контейнеры с эллокаторами, rtti,
исключения и виртуальные методы, а пустите в ход шаблоны, constexpr
и метапрограммирование. - VladislavS.(01.10.2022 01:05)
- Цэ++ для ымбеддерства — это Цэ. Готово, написано! - SciFi(30.09.2022 23:37)
- А можете на Цэ, к примеру, таблицу синусов во флэш сформировать? - VladislavS.(01.10.2022 01:41)
- Он ещё и кофе не умеет готовить. И это прекрасно! SciFi(65 знак., 01.10.2022 09:54)
- О чём я и говорил. Конфигураторы/скрипты/утилиты наше всё. Вернее
ваше. - VladislavS.(01.10.2022 10:03)
- А если программу на С компилировать как С++, получив при этом все
плюсы оптимизатора, это будет уже С++? - AlexBi(01.10.2022 14:33)
- Unix way! - SciFi(01.10.2022 10:29)
- +100. Также как вредны пустые абстракции, вредны и попытки писать
все-все в одном семантическом поле. - Cкpипaч(01.10.2022 12:04)
- Глупость несусветная. Вот в примере с таблицей синусов, если вам
нужно другое количество точек в таблице или другая точность/тип
данных, какие будут ваши действия? - VladislavS.(01.10.2022 14:10)
- таблица синусов - частный пример таблиц, заливаемых во флеш. их
особенность - достаточно простая вычисляемость. а что если таблица
зависит от внешних данных? а что если формулу расчёта хрен напишешь
в десяток строк? Mahagam(397 знак., 01.10.2022 15:16)
- Мои действия будут дословно такие же - переписать программу
генерации таблицы. И код, который с таблицей работает. - Cкpипaч(01.10.2022 15:08)
- В последнее время скриптами резал bmp с буквами на шрифты, собирал
прошивку из кусков с добавлением серийника и мак, обфурцировал и
зажимал html. Сомневаюсь, что тут мне помогли бы constexp. Зато на
хабре постоянно споры как на плюсах проще светляком помигать с
текстом проги на пару страниц. Может в мегапроектах это и
оправданно, но в небольших проектах это простыни малочитаемого
текста. - Andreas(01.10.2022 14:41)
- Не волнуйтесь, справимся. Кстати, вы заметили, как подход
оппонентов вы назвали глупостью, а в сторону вашего подхода никаких
комков грязи не летело? - SciFi(01.10.2022 14:17)
- Вот с таких применений и можно начать. А я могу выступить
подопытных кроликом, который умеет в железки и в С, но о С++ только
по верхушкам. - Dingo(01.10.2022 03:53)
- ;) symbions(16 знак., 01.10.2022 00:33)
- Упадочный стиль! Декаданс! Характерными чертами декадентства обычно
считаются отход от общественности и отвращение к повседневной жизни
(taedium vitae), что проявляется в искусстве отрывом от реальности, поэтикой искусства для искусства, эстетизмом, модой на демонизм , преобладанием формы над содержанием, стремлением к внешним эффектам, стилизации и так далее. - IBAH(1 знак., 30.09.2022 17:22, ссылка)
- Никто бы и не возражал, если бы качественная плюсовая либа шла от
производителя. Но она Си'шная. - =AlexD=(30.09.2022 16:07)
- Композиция. Сверху вниз и слева направо. - Cкpипaч(30.09.2022 14:25)
- Если бы я бросил пить... Не гулял с друзьями... Не танцевал, не
тратил столько времени на женщин... Был бы усидчив... Я бы писал,
читал, рассчитывал, изучал, чертил, брал на дом работу, искал темы,
подмечал острым глазом, изобретал, выступал в журналах, сидел
ночами. Что-то открыл бы. От долгого сидения. Защитил бы
докторскую, получил бы премию... И уже тогда гулял бы с друзьями, и
танцевал, и тратил много времени на женщин. Что я сейчас и делаю без этих хлопот! - IBAH(30.09.2022 14:10)
- C июля плотно занимаюсь исправлением чужого кода на С++. С
удивлением вчера обнаружил, что вот это стало мне прекрасным :) symbions(40 знак., 30.09.2022 08:15, youtube)
- Вроде не пятница VladislavS.(1 знак., 29.09.2022 12:05, картинка)
- Вот омерикосы, еще в 50-м, приняли закон об оборонном производстве,
который уполномочивает президента требовать от бизнеса выполнять
приоритетные контракты на материалы и изделия, которые считаются
необходимыми для национальной обороны, независимо от убытков,
понесенных в бизнесе. Solo(847 знак., 06.10.2022 10:39, Off, ссылка, полностью)
- Х-конденсаторы надо кому-нибудь? Место занимают уже больше 5 лет,
но всё в отапливаемом помещении. Dingo(70 знак., 06.10.2022 09:02, xchg, картинка, картинка, полностью)
- Так, господа танкисты-микробиологи, меняем курс на 180. Кто в
детстве (на военной кафедре) изучал гироскопы? Вздрочните. - Kpoк(1 знак., 05.10.2022 14:47, Off, ссылка, полностью)
- Флорида поднимает украинские флаги. Codavr(430 знак., 06.10.2022 08:57, Off, картинка, полностью)
- [iCE40UltraPlus] Уже известное семейство, читаем доку и офигеем. Two of the iCE40 UltraPlus I/Os can be used to interface to higher performance I3C ->. Evgeny_CD(24.08.2019 00:46 - 00:49, pld, ссылка, полностью)
- Чудо свершилось. [Mitsubishi RF (HF, VHF, UHF) полевики с высокой линейностью в
TO-220]!!! Свежая разработка, 2017 года! У нас ими даже чип-дип торгует. Evgeny_CD(672 знак., 18.09.2022 05:05, SCH, ссылка, ссылка, полностью)
- Пример использования - Evgeny_CD(1 знак., 06.10.2022 00:47, ссылка)
- А вот конкуренты от NXP. Что характерно, тоже в TO-220, TO-247. Тут
линейность чуть похуже, но параметры крышесносные. КСВ 65
кратковременное и т.д. Кус 27 дБ по мощности!!! Емкости обратной
связи микроскопические. Входная ёмкость просто стабильна во всех
осмысленных режимах. Торгует Чип-дип, кроме самого мощного. Evgeny_CD(1 знак., 20.09.2022 10:36, ссылка)
- на VHF, UHF обычно используют частотную модуляцию, усилитель
мощности при этом работает в режиме "С". Так что линейность никаким
боком не упиралась. - =L.A.=(18.09.2022 18:11)
- Эти транзисторы решают вопрос создания лабораторного усилителя - Evgeny_CD(1 знак., 18.09.2022 05:06, ссылка)
- нет никакой проблемы сделать линейный усилитель на 25 Vpp /0,5А с
полосой 10МГц . Если нужно 200Vpp/0,5А, то проблемы появляются, но
решаемы. - =L.A.=(18.09.2022 18:10)
- Начнем с того, что нужен усилитель до 10 МГц с двухсигнальной
интермодуляцией 100дБ в ближней зоне. Т.е. чтобы 5000 КГц, 5001 КГц
вход а, скажем, 5005 КГц на выходе -100 dBc - Evgeny_CD(18.09.2022 18:23)
- То есть нужен высоколинейный и крайне малошумящий усилитель, правда
непонятно по каким причинам и для какой задачи. Получить шумы минус
100 дБ в полосе частот 10 МГц ? Хочу посмотреть на аппарат, с
такими характеристиками. - =L.A.=(18.09.2022 20:33)
- С резонаторами для генераторов помочь могу у меня их несколько
сотен разных завалялось, но как вы представляете 5000 и 5001 КГц на
одной плате? Там же один другой захватит! - Visitor(18.09.2022 19:18)
- А я укуренный и отмороженный. Сталь 79НМ наш ответ! Она продается,
и в прутках чуть ли не до 200мм, и в листах разной толщины Evgeny_CD(548 знак., 18.09.2022 19:30, ссылка, ссылка)
- Это для соседнего топика? ;)) saifullin(31 знак., 18.09.2022 20:39)
- Женя, с вами все нормально? - Visitor(18.09.2022 19:35)
- чую, надо ему отдохнуть :) - =L.A.=(18.09.2022 20:35)
- Чувствую, нарисованный мною пока виртуальный дизайн "шайбы" 200мм и
высотой, скажем, 35мм, с секциями внутри, произвел неизгладимое
впечатление :) Заметим, ничего фантастического в этом нет. Надо
только ее обжечь после обработки правильно, много где об этом
написано, а вот что такое "правильно" не пишут, черти. Тогда такой
генератор даже взрыв ядреной бомбы на расстоянии 1 км слабо
почувствует, в основном через вибрацию :) - Evgeny_CD(18.09.2022 19:57)
- Все нормально, идет процесс метального моделирования ветви развития
реальности. Прорвется оно IRL или нет - это пока неизвестно :) - Evgeny_CD(18.09.2022 19:48)
- SDR трансивер на Ардуине. - Гyдвин(1 знак., 13.09.2022 11:41, dao, ссылка, полностью)
- забросил в аплоад книгу Mastering Embedded Linux Programming и перевод с кодом. особо не читал, но systemd уже встречается:) - Vit(08.02.2019 01:17, dao, полностью)
- Взрыв на военном заводе "Арсенал" в Болгарии, поставляющем оружие
укронацистам. Есть погибшие и раненые. Петров с Бошировым не
пострадали. - Codavr(05.10.2022 22:50, Off, полностью)
- Сегодня, впервые в жизни, медицинскую операцию сделал. Коту вросший
коготь удалил бокорезами, пациент жив. - Visitor(02.10.2022 11:52, Off, полностью)