Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Re: Литература для stm32

Вс май 22, 2022 10:57:45

Вот неугомонный то :) Эту бы энергию да в изучение чего-нибудь нового.

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


И сколько вариантов периферии вы реализовали? Отдельно светодиод. Что еще?
Я работаю с радиотехниками, там всяких синтезаторов частот, аттенюаторов, dds, коречипов вагон и тележка. И в разных изделиях их применяют в разных сочетаниях и количествах. И это не считая всяких чисто наших эмбеддерских микросхем памяти, разнообразных датчиков, индикаторов, клавиатур и т.д. Так что, дофига и больше, если быть совсем точным.

У вас часто возникает задача генерировать такие контроллеры и настраивать именно урезанные пины?
Ну вот в июне будет очередной проект с Microblaze. Только какое отношение моя практика имеет к принципу построения библиотеки?

Да, по фрагментам. Даже ваши фрагменты занимают раза в три больше места, чем аналогичный макрос.
Аналогичный макрос? Так его просто не существует. Как можно сравнить размер с тем чего нет?

Выигрыш в пару тактов у вас только там, где вы заморочились с ручной оптимизацией (вроде байтового доступа к регистрам).
Вы так ничего и не поняли. Нет никакой ручной оптимизации. Это делает компилятор по тем правилам, которые я ему один раз рассказал.


Зачем вы врете? Компилятор не имеет права разивать 32-битный регистр на байты, это вы делали вручную.
Если прогуливать уроки физики в школе, то окружающий вас мир наполнится магией и волшебством :) Так же и с программированием. Я могу "рассказать" компилятору как это сделать и он будет послушно это делать всегда и везде. И это никакое не волшебство, а банальное инстанцирование шаблона в зависимости от данных. Объяснение того что происходит под прошлым спойлером тут


На Земле. Это третья планета солнечной системы.
Это там где Принцессы «пукают фиалками»? И это рассказывает человек, у которого в коде официально костыль задокументирован, иначе два раза вызывается :)

Хорошо, но какое это имеет отношение к разбиению линии данных по портам?
Изменить способ обмена через define ничуть не сложнее.
Такое, что вам придётся вручную раскладывать доступ по портам, а я просто укажу на каких ногах какой сигнал подключен и дальше... Ну вы знаете, компилятор "всё сделает сам". :)

Re: Литература для stm32

Вс май 22, 2022 11:11:24

Красиво, это когда все ноги с одной линии контактов - без переходов уходят на чип с параллельным портом, одной красивой полосой проводников.
Да, красиво, да работает - но в 100 раз медленнее чем могло-бы работать.
А это означает что можно было взять чип в 100 раз слабее и дешевле. Мысль понятна?

Если можно написать простой, компактный и быстро работающий код, то большего ничего и не нужно. Дальше уже программист решает хочется ли ему скорости, тогда можно выбрать пины с одного порта и желательно не в разброс, а кому-то нравится красиво разведенные платы и он все тянет одной красивой полосой проводников. Скорость тоже не везде нужна, те же семисегментники можно проинитить так же просто:
using segs = PinList<PC7, PA4, PA10, PB10, PB11, PD3, PB9, PA11>;
using digits = PinList<PC0, PB8, PA3, PC6>;
Semiseg<digits, segs> semiseg;
semiseg.init();

А можно написать:
Код:
using segs = PinList<PB15, PB14, PB13, PB12, PB11, PB10, PB9, PB8>;

И будет одна запись в половинку ODR...

Re: Литература для stm32

Вс май 22, 2022 11:21:10

мой скептицизм на счет С++ местным завсегдатаям известен, но против правды не попрешь: VladislavS действует правильно.

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

только вот спор об эффективности мне кажется великой глупостью: для чего вам создали МК с дикими мегагерцами? чтобы вы продолжали убивать время на оптимизацию каждого такта? для чего вам флеша напихивают в МК сверх меры? чтобы вы, как и 30 лет назад, экономили каждый её байт? в данном случае это не критика подхода VladislavS-а, у него эта "экономия" по сути является побочным эффектом проектирования, что минусом быть не может. а вот трата времени на достижение этой цели иными, менее "автоматическими" способами, это, имхо, глупость.

и пару слов о кодогенераторах. имхо, это тоже тупик для интеллекта. опять же на примере мною любимого паскаля, а именно Delphi, которая самая первая внедрила концептуальный подход программирования мышкой... и что в итоге? 99% кода, написанного "пользователями" дельфи является нечитаемой кашей из макарон. 98% "программистов" за 20 лет существования Delphi так и не приучили себя давать осмысленные имена сущностям, которые Delphi автоматически генерирует, до сих пор в их программах Button123 и Form321 вкупе с переменными i12 и m8...

увы, концепция кнопки "сделай за меня хорошо и правильно" в программировании не работает. но тем не менее, эта концепция продолжает жить и пестоваться различными "гуру"... и единственное, чем я могу это объяснить (не скатываясь на позиции теорий заговора) - это то самое изобилие мегагерцев и мегабайтов, которые попросту "гуру" не знают, куда деть. поэтому и появляются идеи типа "а давайте в следующей версии иконки сделаем с 64-битной глубиной цвета и 3D-анимацией"... ну или "а давайте сделаем кнопку, нажав на которую пользователь сразу получит работающее, как ему хочется, приложение". последняя идея очень перспективна в плане самообеспечения работой: ведь добавлять возможности в эту кнопку можно (и неизбежно придется) вечно...

Re: Литература для stm32

Вс май 22, 2022 11:33:34

Вот о чем я и говорю. VladislavS невтуда применяет свои силы. Да, у него было много свободного времени и он, пока бездельничал, написякал дофига букавок для конфига портов. Но профессиональный практикующий программист скажет, глядя на эти портянки: "И это всё, что ты сделал?" А ответить то будет нечем. Потому что любой "кубист" уделает VladislavS-а за минуту, а доводы, что инит портов на 100 тактов быстрее будут отклонены с насмешкой "Ты чо, на 480 МГц твои сто тактов растворятся как ложка соли в пяти литрах бульона". Конечно, такое поражение сложно принять, потому и доводы не будут услышаны. Это ж не практикующий программист, а программист-теоретик с массой свободного времени.

Re: Литература для stm32

Вс май 22, 2022 11:34:13

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

Вопрос в том как сделать конфигуратор который выдаст код длиной в несколько строчек без использования продвинутых библиотек... Берем те же пины для семисегментника:
Код:
using segs = PinList<PC7, PA4, PA10, PB10, PB11, PD3, PB9, PA11>;
using digits = PinList<PC0, PB8, PA3, PC6>;

Я их просто указал и все, внутри будет простая запись:
Код:
segs::write(comAnodeTbl[ch] & ~dot);
digits::write(1 << digit);

Покажи как аналоги этих двух строк будут выглядеть после отработки хорошего конфигуратора выдающего код в котором не будет ничего лишнего :)

Re: Литература для stm32

Вс май 22, 2022 11:38:39

Reflector, точно так же, как и у тебя, только без ненужного текста. Вы просто не понимаете смысла, не работали в больших проектах, и вам обидно за потраченное на ерунду время, потому и очень рьяно защищаете свой подход, своё потраченное впустую время. Нынче любой "кубист" сделает всё быстрее, а на ваши доводы о лишних тактах презрительно усмехнется и сплюнет, мол, чувак, поучи-ка жену щи варить.
Такова жизнь, такова вот "селяви". Да, я тоже через это проходил, когда вручную писал USB, а в это время "кубисты" просто генерили проект и сдавали его раньше. Так же сейчас и вас уделают, когда потребуется.
Последний раз редактировалось НовыйДень Вс май 22, 2022 11:41:20, всего редактировалось 1 раз.

Re: Литература для stm32

Вс май 22, 2022 11:42:23

Reflector писал(а):как аналоги этих двух строк будут выглядеть после отработки хорошего конфигуратора выдающего код в котором не будет ничего лишнего
назовите конфигуратором компилятор С++, и проблема решена :))) интерфейс у конфигуратора - текстовый, символами ставится задача, и он генерирует максимально оптимальный код в соответствии с заданием.

все счастливы.

Добавлено after 2 minutes 34 seconds:
НовыйДень писал(а):Нынче любой "кубист" сделает всё быстрее, а на ваши доводы о лишних тактах презрительно усмехнется и сплюнет
это верно. только что сделает кубист на небольшое изменение задачи типа "блин, на этот пин нельзя вешать SDA, там светодиод нужен, давай переставим их местами"? я так понимаю, Reflector в своем PinList вместо P1 поставит P22 и посмотрит на кубиста, как на говно...

Re: Литература для stm32

Вс май 22, 2022 11:46:45

а вот трата времени на достижение этой цели иными, менее "автоматическими" способами, это, имхо, глупость

Сколько бы усилий на либу потрачено не было, по крайней мере она повсеместно используется и будет полезна в дальнейшем. Сравни это, например, со своим любимым впихиванием невпихиваемого в tiny13, что из этого большая глупость?

Re: Литература для stm32

Вс май 22, 2022 11:57:01

Так чё, нет в рукаве никакого продвинутого конфигуратора с кодогенератором эффективного кода? А есть только куб, код USB которого не помещается в младшие контроллеры F0? Расходимся, нас в очередной раз наипали диванные эксперты.

Re: Литература для stm32

Вс май 22, 2022 11:59:19

Так чё, нет в рукаве никакого продвинутого конфигуратора с кодогенератором эффективного кода?

Напоминает рассказы чудака который на форумах рекламирует некий "ассемблер высокого уровня", который лучше C/C++, но пока в закрытом доступе :)

Re: Литература для stm32

Вс май 22, 2022 12:02:58

Т нет в рукаве никакого продвинутого конфигуратора с кодогенератором эффективного кода? А.

У меня - есть :))) ! Написан совместно с коллегами :))) "Но я тебе его не дам"(С)

Re: Литература для stm32

Вс май 22, 2022 12:07:18

У меня - есть :))) ! Написан совместно с коллегами :)))

Обычным любителям что делать? Чужой конфигуратор(кроме куба) им не дадут, а чтобы написать свой нужно быть профессиональным разработчиком с кучей таких же коллег, так что ничего кроме написания своих либ и не остается.

Re: Литература для stm32

Вс май 22, 2022 12:12:02

Есть два пути. Один из которых - вначале написать огромные проприетарные портянки, а потом выдвигать их как "прорыв и новое слово отечественного кодопейсательства". Либо Не писать портянок, понимая, что конфиг портов - это не самая главная часть в предстоящей работе и занимает ноль целых хрен тысячных всего затраченного на написание кода времени. И все свои умения по продвинутому С++ гораздо важнее применить в более подходящем для этого месте.

Re: Литература для stm32

Вс май 22, 2022 12:19:05

В каком, например? И откуда инфа что не применяется?

Re: Литература для stm32

Вс май 22, 2022 12:23:22

Reflector писал(а):Сравни это, например, со своим любимым впихиванием невпихиваемого в tiny13, что из этого большая глупость?
во-первых, признаюсь: моё предположение, что слежение за контекстом в крови программиста, оказалось ошибочным - ты явно не следишь за контекстом написанного мною.
во-вторых, моё впихивание невпихуемого - это хобби, т.е. я это делаю из чисто спортивного интереса. у тебя задачи профессиональные - сколько раз мне нужно повторить, что сравнивать профессионала с любителем-хоббистом некорректно? warning тебе - сравнение операндов разных типов.

Re: Литература для stm32

Вс май 22, 2022 12:36:49

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

Вроде писал и не раз, что программист, но не эмбеддер, следовательно все мои игры с мк - такое же хобби, мне за это никто не платит.

Re: Литература для stm32

Вс май 22, 2022 12:42:27

дело не в том, платят или нет, а в навыках, опыте и подходах.

Re: Литература для stm32

Вс май 22, 2022 12:46:44

дело не в том, платят или нет, а в навыках, опыте и подходах.

Навыки, опыт и подходы могут быть другие, а мотивация та же самая - спортивный интерес.

Re: Литература для stm32

Вс май 22, 2022 12:57:14

А есть только куб, код USB которого не помещается в младшие контроллеры F0?

В смысле не помещается? А как тогда калокуберы с STM32F0x2 работают? =D

Re: Литература для stm32

Вс май 22, 2022 13:29:54

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

Добавлено after 14 minutes 44 seconds:
Вот, кстати, из полезного неногодрыжного. Таблица перекодировки. Где-то уже показывал, не помню где. Тут же налетели ястребы - да мы, да это всё внешними утилитами генерится и чуть ли не в виде бинарных файлов прилинковывается.

Ответить