STM32 новичку в ARM что к чему
Re: STM32 новичку в ARM что к чему
[uquote="КРАМ",url="/forum/viewtopic.php?p=4713541#p4713541"]Приступив к работе с Артери вместо СТМ, я внезапно обнаружил, что, несмотря на идентичность почти всей периферии, хедеры написаны не в дефайнах констант, а как структуры. Дефайны конечно тоже есть, но они для читабельности значений полей структур. И они не требуют перректальных инверсий и логических операций в ините.
И потому очень наглядная настройка посредством определения значения поля структуры стала чрезвычайно читабельной и удобной. В отличии от.[/uquote]
Подход с битовыми полями для volatile регистров делает настройку еще и чрезвычайно не эффективной, потому большинство производителей его не использует.
И потому очень наглядная настройка посредством определения значения поля структуры стала чрезвычайно читабельной и удобной. В отличии от.[/uquote]
Подход с битовыми полями для volatile регистров делает настройку еще и чрезвычайно не эффективной, потому большинство производителей его не использует.
- Реклама
- КРАМ
- Друг Кота
- Сообщения: 25219
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: STM32 новичку в ARM что к чему
[uquote="Adrift",url="/forum/viewtopic.php?p=4713545#p4713545"]потому большинство производителей его не использует.[/uquote]
Это для погромиста он не эффективный, патамушта погромист сегодня работает в одной команде. а завтра в другой. Сегодня он пишет для стм, а завтра для инфинеона.
Правда не очень понятно с "эффективностью". Вы выбираете только те чипы, где есть "эффективные хедеры"?
Очень странный подход.
С точки зрения эмбедда выбирать чип нужно с точки зрения технической и экономической целесообразности, а не для облегчения жизни программиста. У нас, например, вообще нет специальных программистов. Есть радиоинженеры, которые умеют писать код. На Си или на АСМе, либо и на том и на другом вместе. Этот код перекрестно понятен всем участникам процесса.
А вот набор чипов как раз сильно ограничен. Из-за логистической целесообразности. Естественно, что можно обосновать любой другой чип. Но только не из соображений "эффективного хедера" или удобной IDE.
Это для погромиста он не эффективный, патамушта погромист сегодня работает в одной команде. а завтра в другой. Сегодня он пишет для стм, а завтра для инфинеона.
Правда не очень понятно с "эффективностью". Вы выбираете только те чипы, где есть "эффективные хедеры"?
Очень странный подход.
С точки зрения эмбедда выбирать чип нужно с точки зрения технической и экономической целесообразности, а не для облегчения жизни программиста. У нас, например, вообще нет специальных программистов. Есть радиоинженеры, которые умеют писать код. На Си или на АСМе, либо и на том и на другом вместе. Этот код перекрестно понятен всем участникам процесса.
А вот набор чипов как раз сильно ограничен. Из-за логистической целесообразности. Естественно, что можно обосновать любой другой чип. Но только не из соображений "эффективного хедера" или удобной IDE.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: STM32 новичку в ARM что к чему
Если речь о начальной инициализации, то эффективность тут вообще ни при чем.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- КРАМ
- Друг Кота
- Сообщения: 25219
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: STM32 новичку в ARM что к чему
Именно так. А когда имеется инициализация в критическом коде, то там нужно смотреть что генерирует компилятор. И целесообразность может быть совершенно иной. И точно она не относится к читаемости. Достаточно комментов.
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: STM32 новичку в ARM что к чему
[uquote="a5021",url="/forum/viewtopic.php?p=4713519#p4713519"]чтобы PORT_A_CONFIG состоял из понятных определений.[/uquote]Во-первых, макросы - зло. Во-вторых, в пределе я ничего не хочу знать о регистрах. Понятные определения это вот так - выберется только то что существует в контроллере. И само установится.

--------

Добавлено after 2 minutes 36 seconds:
[uquote="ARV",url="/forum/viewtopic.php?p=4713601#p4713601"]Если речь о начальной инициализации, то эффективность тут вообще ни при чем.[/uquote]
Согласен, главное удобство и как следствие безошибочность.
Спойлер
--------
[uquote="ARV",url="/forum/viewtopic.php?p=4713601#p4713601"]Если речь о начальной инициализации, то эффективность тут вообще ни при чем.[/uquote]
Согласен, главное удобство и как следствие безошибочность.
- Реклама
- КРАМ
- Друг Кота
- Сообщения: 25219
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: STM32 новичку в ARM что к чему
[uquote="VladislavS",url="/forum/viewtopic.php?p=4713609#p4713609"]в пределе я ничего не хочу знать о регистрах. Понятные определения это вот так - выберется только то что существует в контроллере.[/uquote]
Это все конечно хорошо, только когда касается типовых интерфейсов в типовых применениях. А как дело доходит до нестандартных применений типового или уникальных, то все эти "понятные определения" тихо идут лесом.
Это все конечно хорошо, только когда касается типовых интерфейсов в типовых применениях. А как дело доходит до нестандартных применений типового или уникальных, то все эти "понятные определения" тихо идут лесом.
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: STM32 новичку в ARM что к чему
Типовой интерфейс или нет определяется только ленью программиста.
Re: STM32 новичку в ARM что к чему
[uquote="Adrift",url="/forum/viewtopic.php?p=4713521#p4713521"]Покажите мне подсказку для CC1E, потому что у меня с решарпером ее нет, а мощнее решарпера я ничего не знаю.[/uquote]
не должны столь простые вещи вызывать затруднения. вот я создал новый файл, воткнул сверху макросы и оно само пытается угадать, чего я хочу и пытается угадать почти правильно:
я там успел только '=' ввести.. да, понятно, скорее всего оно уже подсмотрело, что я обычно делаю и начинает подсовывать наиболее подходящие варианты, но я то не против.. 
вытащит все имена периферийных блоков для h573, сколько бы там строк ни было. регистры -- по аналогии. и определения битовых полей. и... и понятия не имею, какие они там. только вот не понял, зачем 6 раз? я не пишу универсальных библиотек в намерении осчастливить все человечество. я для себя пишу, а мне не нужно много.
Добавлено after 1 hour 13 minutes 14 seconds:
[uquote="КРАМ",url="/forum/viewtopic.php?p=4713586#p4713586"]Есть радиоинженеры, которые умеют писать код. На Си или на АСМе, либо и на том и на другом вместе. Этот код перекрестно понятен всем участникам процесса.[/uquote]
а я то не понял сначала, в чем дело.. знакомый надысь собеседовался в известную фирму. после собеса уже в частном порядке ему там сказали, что совершенно напрасно он припомнил свой эмбедерский опыт. у них там существует негласная установка этих самых "радиоинженеров" не брать. слишком уж своеобразно они "умеют писать код".
не должны столь простые вещи вызывать затруднения. вот я создал новый файл, воткнул сверху макросы и оно само пытается угадать, чего я хочу и пытается угадать почти правильно:
Спойлер
сгущаете. простыми регулярками выдрать список всей периферии или регистров из заголовочника -- ничего сложного. пример:Но писать то придется, а преимущества вашего подхода слишком незначительны чтобы компенсировать это вместе с прочими недостатками. И писали вы для одного из самых примитивных мк. Структуры для F103 в стандартном хедере занимают 420 строк, а для H563 - 1450. Для H503 хедер другой, т.е. даже в рамках одной серии не надорваться нужно раз 6, а серий полно, мне нужно хотя бы 5. По нормальному это уже нужно утилитку писать )
Код: Выделить всё
grep "[A-Z0-9_]TypeDef" stm32h573xx.h | grep -v -e "#define" -e "typedef" -e "__" | sed -E 's/^[[:space:]]*}[[:space:]]*//; s/_TypeDef;//g'Добавлено after 1 hour 13 minutes 14 seconds:
[uquote="КРАМ",url="/forum/viewtopic.php?p=4713586#p4713586"]Есть радиоинженеры, которые умеют писать код. На Си или на АСМе, либо и на том и на другом вместе. Этот код перекрестно понятен всем участникам процесса.[/uquote]
а я то не понял сначала, в чем дело.. знакомый надысь собеседовался в известную фирму. после собеса уже в частном порядке ему там сказали, что совершенно напрасно он припомнил свой эмбедерский опыт. у них там существует негласная установка этих самых "радиоинженеров" не брать. слишком уж своеобразно они "умеют писать код".
- Вложения
-
- test_c_1.jpg
- (67.13 КБ) 681 скачивание
- КРАМ
- Друг Кота
- Сообщения: 25219
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: STM32 новичку в ARM что к чему
[uquote="a5021",url="/forum/viewtopic.php?p=4713632#p4713632"]ему там сказали, что совершенно напрасно он припомнил свой эмбедерский опыт. у них там существует негласная установка этих самых "радиоинженеров" не брать. слишком уж своеобразно они "умеют писать код".[/uquote]
А зачем радиоинженеру работать программистом? У радиоинженера совершенно другие задачи. Поэтому он занимается либо чистой схемотехникой. либо схемотехникой и зависимым от нее кодом одновременно.
Каждый должен делать свою работу.
У нас все проекты схемозависимы. Поэтому есть очень негативный опыт использования чистых программистов.
А зачем радиоинженеру работать программистом? У радиоинженера совершенно другие задачи. Поэтому он занимается либо чистой схемотехникой. либо схемотехникой и зависимым от нее кодом одновременно.
Каждый должен делать свою работу.
У нас все проекты схемозависимы. Поэтому есть очень негативный опыт использования чистых программистов.
Re: STM32 новичку в ARM что к чему
[uquote="VladislavS",url="/forum/viewtopic.php?p=4713609#p4713609"]Во-первых, макросы - зло.[/uquote]
а категоричность, надо полагать, величайшая благодетель? В ядре линукса (6.x) свыше 20 тыс. макросов. макросы -- отличнейший инструмент в руках того, кто умеет ими пользоваться. ну а неумехе, что ни дай..
увлечение абстракциями -- оно порой довольно забавное. это все равно, как если бы хирург вдруг заявил, что он не желает вникать в строение организма, а хочет на некоем абстрактном уровне делать операции людям, слонам и рыбам одинаковым образом.
Добавлено after 1 hour 5 minutes 57 seconds:
[uquote="КРАМ",url="/forum/viewtopic.php?p=4713687#p4713687"]А зачем радиоинженеру работать программистом? У радиоинженера совершенно другие задачи. Поэтому он занимается либо чистой схемотехникой. либо схемотехникой и зависимым от нее кодом одновременно. Каждый должен делать свою работу. У нас все проекты схемозависимы. Поэтому есть очень негативный опыт использования чистых программистов.[/uquote]
насчет каких "чистых программистов" вы говорите в данном контексте, я примерно понимаю. осталось, разве что программистов 1С еще в эмбеде попробовать для полноты опыта. раз у вас радиоинженеры код пишут, то до 1С-схемотехников недалеко уж осталось. я к чему это?... если расслаивать программистов в эмбеде, то нижний уровень -- это firmware engineer, в ведении которого находятся регистры, биты, инициализация железа и все самое низкоуровневое. на втором уровне embedded software engineer -- ос, драйвера, протоколы. на третьем embedded software developer -- прикладник с эмбедерским уклоном. нету тут места радиоинженерам.
Добавлено after 26 minutes 5 seconds:
[uquote="Adrift",url="/forum/viewtopic.php?p=4713545#p4713545"]Подход с битовыми полями для volatile регистров делает настройку еще и чрезвычайно не эффективной, потому большинство производителей его не использует.[/uquote]
там периферийный блок описывается, как союз 32-битного целого и структуры. если писать в структуру, то доступ к каждому полю будет отрабатываться отдельно и это действительно целая портянка. если хочешь простое присваивание из трех ассемблерных команд, то используй 32-битную переменную. это довольно удобное и гибкое решение. я не очень понимаю, зачем они используют именованную структуру внутри союза. выгод совсем чуть, а громоздкость записи увеличивается.
а категоричность, надо полагать, величайшая благодетель? В ядре линукса (6.x) свыше 20 тыс. макросов. макросы -- отличнейший инструмент в руках того, кто умеет ими пользоваться. ну а неумехе, что ни дай..
никто не неволит. периодически наблюдаю десктопных программистов, которые накатывают ртось и ваяют совершенно без оглядки на железо -- софтом, ногодрыгом, да как получится.Во-вторых, в пределе я ничего не хочу знать о регистрах.
увлечение абстракциями -- оно порой довольно забавное. это все равно, как если бы хирург вдруг заявил, что он не желает вникать в строение организма, а хочет на некоем абстрактном уровне делать операции людям, слонам и рыбам одинаковым образом.
смахивает на грёзы. "Создайте систему, которой сможет пользоваться дурак, и только дурак захочет ею пользоваться."Понятные определения это вот так - выберется только то что существует в контроллере. И само установится.
Добавлено after 1 hour 5 minutes 57 seconds:
[uquote="КРАМ",url="/forum/viewtopic.php?p=4713687#p4713687"]А зачем радиоинженеру работать программистом? У радиоинженера совершенно другие задачи. Поэтому он занимается либо чистой схемотехникой. либо схемотехникой и зависимым от нее кодом одновременно. Каждый должен делать свою работу. У нас все проекты схемозависимы. Поэтому есть очень негативный опыт использования чистых программистов.[/uquote]
насчет каких "чистых программистов" вы говорите в данном контексте, я примерно понимаю. осталось, разве что программистов 1С еще в эмбеде попробовать для полноты опыта. раз у вас радиоинженеры код пишут, то до 1С-схемотехников недалеко уж осталось. я к чему это?... если расслаивать программистов в эмбеде, то нижний уровень -- это firmware engineer, в ведении которого находятся регистры, биты, инициализация железа и все самое низкоуровневое. на втором уровне embedded software engineer -- ос, драйвера, протоколы. на третьем embedded software developer -- прикладник с эмбедерским уклоном. нету тут места радиоинженерам.
Добавлено after 26 minutes 5 seconds:
[uquote="Adrift",url="/forum/viewtopic.php?p=4713545#p4713545"]Подход с битовыми полями для volatile регистров делает настройку еще и чрезвычайно не эффективной, потому большинство производителей его не использует.[/uquote]
там периферийный блок описывается, как союз 32-битного целого и структуры. если писать в структуру, то доступ к каждому полю будет отрабатываться отдельно и это действительно целая портянка. если хочешь простое присваивание из трех ассемблерных команд, то используй 32-битную переменную. это довольно удобное и гибкое решение. я не очень понимаю, зачем они используют именованную структуру внутри союза. выгод совсем чуть, а громоздкость записи увеличивается.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: STM32 новичку в ARM что к чему
a5021 писал(а):а категоричность, надо полагать, величайшая благодетель?
я просто оставлю это здесь - 2 "самодокументирующися" цитатыa5021 писал(а):нету тут места радиоинженерам.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- КРАМ
- Друг Кота
- Сообщения: 25219
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: STM32 новичку в ARM что к чему
[uquote="a5021",url="/forum/viewtopic.php?p=4713694#p4713694"]если расслаивать программистов в эмбеде, то нижний уровень -- это firmware engineer, в ведении которого находятся регистры, биты, инициализация железа и все самое низкоуровневое. на втором уровне embedded software engineer -- ос, драйвера, протоколы. на третьем embedded software developer -- прикладник с эмбедерским уклоном. нету тут места радиоинженерам.[/uquote]
Вы вообще не понимаете о чем идет речь.
Приведу пример.
Нужно сделать обнаружитель сигналов. Например, обнаружить эффект Баркгаузена в объекте.
Интерфейсы обмена у устройства самые примитивные. Пусть это будет некий проприетарный протокол на УАРТе, например.
Причем обнаружитель должен быть конкурентным с какой нибудь китайской конторой, которая эти обнаружители делает уже лет 10 или 15. Тупое повторение схемотехники китайского образца дает себестоимость товара раза в 1,5 ... 2 выше, чем цена покупки у китайцев. Китайцы продают это изделие конкуренту, а конкурент демпингует.
В каком месте тут firmware engineer, embedded software engineer и, не побоюсь этого слова, embedded software developer?
Эта вся братия годится, чтобы сделать телематический терминал в трамвай и метро. Неплохо у них получается пожарная охранка и даже частотный преобразователь на основе референсного проекта из аппноты и готового сигнального кода из библиотеки производителя МК.
И все.
Сделать что то оригинальное и потому конкурентное эта публика не в состоянии. Патамушта к радиотехнике не имеет никакого отношения.
Вы вообще не понимаете о чем идет речь.
Приведу пример.
Нужно сделать обнаружитель сигналов. Например, обнаружить эффект Баркгаузена в объекте.
Интерфейсы обмена у устройства самые примитивные. Пусть это будет некий проприетарный протокол на УАРТе, например.
Причем обнаружитель должен быть конкурентным с какой нибудь китайской конторой, которая эти обнаружители делает уже лет 10 или 15. Тупое повторение схемотехники китайского образца дает себестоимость товара раза в 1,5 ... 2 выше, чем цена покупки у китайцев. Китайцы продают это изделие конкуренту, а конкурент демпингует.
В каком месте тут firmware engineer, embedded software engineer и, не побоюсь этого слова, embedded software developer?
Эта вся братия годится, чтобы сделать телематический терминал в трамвай и метро. Неплохо у них получается пожарная охранка и даже частотный преобразователь на основе референсного проекта из аппноты и готового сигнального кода из библиотеки производителя МК.
И все.
Сделать что то оригинальное и потому конкурентное эта публика не в состоянии. Патамушта к радиотехнике не имеет никакого отношения.
Re: STM32 новичку в ARM что к чему
судя по всему, ваша контора либо бедная, либо руководство жадное. естественно квалифицированных специалистов вы и не могли видеть. вот поэтому радиофизики код пишут.
- КРАМ
- Друг Кота
- Сообщения: 25219
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: STM32 новичку в ARM что к чему
[uquote="a5021",url="/forum/viewtopic.php?p=4713763#p4713763"]судя по всему, ваша контора либо бедная, либо руководство жадное.[/uquote]
Не вижу логической связи. Если программист ничего не смыслит в радиотехнике, то невозможно решать текущие задачи с его помощью. У нас был опыт работы с программистом. Это тихий ужас. Код он писал очень правильный. Но проще написать самому. Точнее, написать самому - это единственное решение.
Его, кстати, уволили.
Не вижу логической связи. Если программист ничего не смыслит в радиотехнике, то невозможно решать текущие задачи с его помощью. У нас был опыт работы с программистом. Это тихий ужас. Код он писал очень правильный. Но проще написать самому. Точнее, написать самому - это единственное решение.
Его, кстати, уволили.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: STM32 новичку в ARM что к чему
Извините, что вмешиваюсь, но "сделать самому" проще только в одном случае - если не можешь объяснить, что надо делать, другому ("не можешь заплатить", как я понимаю, вычеркиваем).
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: STM32 новичку в ARM что к чему
[uquote="КРАМ",url="/forum/viewtopic.php?p=4713769#p4713769"]Код он писал очень правильный. Но проще написать самому.[/uquote]
после такого уже и обсуждать нечего.
после такого уже и обсуждать нечего.
- КРАМ
- Друг Кота
- Сообщения: 25219
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: STM32 новичку в ARM что к чему
[uquote="a5021",url="/forum/viewtopic.php?p=4713776#p4713776"]после такого уже и обсуждать нечего.[/uquote]
А мне было с кем обсуждать?
Поделитесь своим портфолио радиотехнических проектов. Возможно вы будете нам интересны.
Но меня терзают смутные сомнения.
ЗЫ. Не бывает жадных или бедных. Бывают рентабельные и не рентабельные проекты. Разработчик не должен выйти из бюджета R&D. А этот бюджет определяет планируемая тиражность и сроки окупаемости. Иначе это выброшенные на ветер деньги.
А мне было с кем обсуждать?
Поделитесь своим портфолио радиотехнических проектов. Возможно вы будете нам интересны.
Но меня терзают смутные сомнения.
ЗЫ. Не бывает жадных или бедных. Бывают рентабельные и не рентабельные проекты. Разработчик не должен выйти из бюджета R&D. А этот бюджет определяет планируемая тиражность и сроки окупаемости. Иначе это выброшенные на ветер деньги.
Re: STM32 новичку в ARM что к чему
Точно. В двух конторах сталкивался с такой фигнёй под названием "программист". Эти мальчики нифига не смыслят в предметной области, а мне за пересказ им учебников не платят. Поэтому проще и лучше делать работу с объектом самому, чем пытаться донести до патлатых гениев как и что следует делать.КРАМ писал(а):Если программист ничего не смыслит в радиотехнике, то невозможно решать текущие задачи с его помощью.
Re: STM32 новичку в ARM что к чему
никому не попадался код работы с ds18b20, чтобы по максимуму в железе и без софтовых ожиданий/прерываний/ногодрыгов?
-
veso74
- Поставщик валерьянки для Кота
- Сообщения: 1906
- Зарегистрирован: Сб май 05, 2012 20:24:52
- Откуда: KN34PC, Болгария
- Контактная информация:
Re: STM32 новичку в ARM что к чему
Вариант: использование UART (Single Wire, Half-Duplex) на 9600 и 115200 bps.
Идея: STM32 1-Wire (One Wire) Protocol + DS18B20 Code Example
Идея: STM32 1-Wire (One Wire) Protocol + DS18B20 Code Example


