LINUX.ORG.RU

AVR + STM = ♥?

 ,


1

2

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

Небольшая предыстория, если кому-то интересно, в общем, решил наконец взяться за голову и думать что я буду делать после института (да-да, во втором семестре третьего курса), да и еще чтоб деньги за это получать, и положил глаз на программирование микроконтроллеров, где некоторый опыт у меня уже имеется. Посмотрел на hh то, что мне нужно было там есть и в некоторых вакансиях даже требовали диплом по моей специальности (радиотехник), то что я там видел было в основном про stm и pic. Зарядившись мотивацией, я открыл свои закладки в браузере со множеством мануалов, достал свой чемодан с рассыпухой и начал потихоньку изучать как использовать atmega8a, которую я купил года два назад, и что с ней можно делать. Вообще у меня есть и stm32f103, но я ни разу не прогал для стм, а еще она у меня только одна, еще и с алика долго ждать, в отличие от трех мег, которые и дешевле и спалить одну не так страшно. А еще я поглядел код для стм32 какой-то пугающий с его бесконечными GPIO_*

В общем, у меня вопрос к местной публике, среди которых есть много программистов под микроконтроллеры и встройку: нормальная идея сначала изучить best practices для микроконтроллеров и интерфейсы на avr (в моем случае atmega8), а потом просто перейти на стм?

Мотивация сначала писать avr у меня есть потому что, субъективно, avr легче в изучении, соответственно я больше могу сфокусироваться (надеюсь) на изучаемом интерфейсе, а еще я не нашел как мне можно тестировать код под stm32 без железки (буду рад ссылкам на гайды), как можно c тем же simavr или с верилогом через icarus verilog.

Ответ на: комментарий от vertexua

Если захочется странного, могу посоветовать присмотреться к RP2040/Raspberry Pi Pico. За смешные деньги мощный двухъядерный арм. Мало периферии, но очень гибкий и мощный gpio на конечных автоматах.

anonymous
()
Ответ на: комментарий от snake266

Поищи стажировки у работодателей. Коленкодрочерство - это конечно хорошо, но живительная СИСТЕМА даст тебе опыт (в том числе и в трудовую) и навыки. Заодно могут немного заплатить.

aiqu6Ait ★★★★
()
Последнее исправление: aiqu6Ait (всего исправлений: 1)
Ответ на: комментарий от pfg

Ну-ну, найди в семействе f100 двухъядерник с симметричными 133МГц ядрами на общей шине и с общей памятью. И с таким IO.

anonymous
()
Ответ на: комментарий от anonymous

В смысле мало переферии? GPIO, SPI, I2S есть - ну все жги

vertexua ★★★★★
()
Ответ на: комментарий от aiqu6Ait

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

snake266 ★★
() автор топика
Ответ на: комментарий от snake266

Ну, то есть что я называю своими минимальными знаниями: я использовал i2c (twi), но прям шину никогда не организовывал, цеплял одно устройство, использовал таймеры на atmega, сейчас читаю про spi, про uart только знаю что оно есть. Дальше буду смотреть как на avr ШИМ делается, ну и в принципе про ШИМ почитать надо подробнее.

snake266 ★★
() автор топика
Последнее исправление: snake266 (всего исправлений: 1)
Ответ на: комментарий от anonymous

Он слишком дорогой для своих скудных способностей. Лучше за 200р купить на Али STM32F072CBT6.

anonymous
()

Иди в вебмакакинг. Больше нигде массовых денег нету. Либо 1,5 вакансии и 10 работодателей на Москву, либо копейки платят. Микроэлектроника тут вообще и мертвая и копейки платят.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от anonymous

АВР - говно, калокуб - говно. Что ещё?

Что еще? Ну рассказал бы как дела в отечественной астрономии! :)

pihter ★★★★★
()
Ответ на: комментарий от peregrine

Микроэлектроника тут вообще и мертвая и копейки платят.

Мне в Красноярске аж 30 тыщ предлагали за микроконтроллерокодерство. Зато можно было бы всем хвастать что моя железка на МКС летала, но жена почему-то не одобрила такое трудоустройство :)

pihter ★★★★★
()
Ответ на: комментарий от anonymous

АВР - говно

Ты не прав. АВР — это идеальный контроллер для начинающих! Простая архитектура, интуитивно понятная и полная документация в одном PDF-файле, DIP-корпусы, программировать можно буквально руками, свободный тулчейн, тонна примеров, готовых проектов, книг и обучающего материала, в том числе и на русском языке.

Конечно, если правильно начать, то и STM32 окажется не сложнее, а где-то даже и проще. Однако, голый камень руками не запрограммируешь — даже если справишься с бодрейтом, то запнёшься о путанные протоколы загрузчика и невнятную документацию :)

anonymous
()
Ответ на: комментарий от anonymous

В этом ты прав, однако, я об общем: когда на аврках застревают на всю жизнь. А ещё хуже - абдуринщики, но эти и заменой на стм32 не лечатся.

anonymous
()
Ответ на: комментарий от anonymous

Заходи ко мне в Ж

Ребята, давайте по теме.

anonymous
()
Ответ на: комментарий от anonymous

когда на аврках застревают на всю жизнь

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

anonymous
()
Ответ на: комментарий от anonymous

боятся спуститься на уровень пониже

Также как копрокуберы на СТМ. Для них настроить тактирование — это что-то из разряда управления космическим кораблём. А на самом деле там и настраивать-то нечего: выбрал источник, указал делитель, включил и поехал. Если только ради этого ставить куб, то извините, возможно контроллеры — это не ваше.

anonymous
()
Ответ на: комментарий от anonymous

для многих из них выход за пределы языковых конструкций в хардваре модули сродни полету в космос…

pfg ★★★★★
()
Ответ на: комментарий от James_Holden

да ладно ребята, хорош уже так шутить. не ну хотя может все и есть, но не все работает.

Assembler
()
Ответ на: комментарий от anonymous

Всегда надо чтобы кто-то помог или объяснил на первых шагах. А так это темный лес. здесь много уже написано про stm32f103. мк замечательный, на мой взгляд. может и покажется кому что это все несложно, но только когда все поверхностно. а так вы правы, изучать надо точно не с СИ и куба.

Assembler
()
Ответ на: комментарий от anonymous

Да не то чтобы, просто куб удобный и косячит меньше меня. Я ж не профессионально для жуков код пишу, как и большинство в этой теме.

izzholtik ★★★
()
Ответ на: комментарий от snake266

у меня под линуксом stm32cubeProgreammer вылетает просто от любого нажатия чего-либо в меню. правда вылетает только с st-link_v3_mini,а с st-link_v2 просто не работает. пишет что старый. но возможно когда люди уже придут в себя и поймут что пора переходит в мир МК потому что они будут скоро везде где можно. и делать это надо не из-за денег, а потому что без этого ты просто выпадешь из мира. умение программировать МК это наверное будет как умение читать и писать сейчас. и вот когда они поймут, то проще станет всем, а пока что на линуксе для тех кто хочеть изучать какие-то новинки из мира МК, дела не очень.

Assembler
()
Ответ на: комментарий от Assembler

на линуксе для тех кто хочеть изучать какие-то новинки из мира МК, дела хорошо, это просто ты дебил

anonymous
()
Ответ на: комментарий от izzholtik

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

Assembler
()
Ответ на: комментарий от anonymous

на линуксе для тех кто хочеть изучать какие-то новинки из мира МК, дела хорошо

ты линукс с виндовсом перепутал. теперь я понял.

Assembler
()
Ответ на: комментарий от anonymous

отсосать

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

anonymous
()
Ответ на: комментарий от anonymous

Готов за ответ отойти от своих принципов?

anonymous
()
Ответ на: комментарий от Assembler

объясни мне умный что я должен сделать чтобы st-flash могла шить stm32H7

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

Какой конкретно программатор? Официальный ли это st-link (какой?), кусок discovery (какого именно discovery, они бывают с разными программаторами), или китайский свисток на f103?

Какой конкретно процессор? Семейство H7 — большое и разное. Там есть двухъядерники, причём асимметричные. Есть удешевлённое ответвление — с быстрым ядром, но минимумом памяти и периферии.

Степень поддержки всего этого хозяйства разная. Что-то шьётся влёт китайским свистком уже давно, что-то требует новый ST-Link V3, что-то только-только завезли в stflash (и поэтому бесполезно пытаться использовать древний stflash из реп, необходимо компилять из гита).

И это не какие-то секретные сведения. Достаточно просто забить индекс твоего H7 в гугл, пойти на сайт производителя и почитать конкретно про твой камень — всё написано же.

И что показательно, ТЕБЕ ЭТО УЖЕ ОБЪЯСНЯЛИ в твоих же темах. Но ты продолжаешь флудить, плодить новые темы, срать в чужих темах, и плакаться, как же ничего не работает. Напрашивается вывод, что ты не преследуешь цели разобраться, а просто мразь и гнида, ради развлечения переводящая время и силы форумчан. Из чего вывод — игнор твоих топиков в дальнейшем. Enjoy your karma.

anonymous
()
Ответ на: комментарий от anonymous

ради развлечения переводящая время и силы форумчан

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

anonymous
()
Ответ на: комментарий от Assembler

умение программировать МК это наверное будет как умение читать и писать сейчас

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

snake266 ★★
() автор топика
Ответ на: комментарий от anonymous

Только не забывай, что куб учитывает errata, а при работе с регистрами учитывать ее придется тебе самому. И не всегда предсказуемый самописный код работает быстрее куба.

aiqu6Ait ★★★★
()
Ответ на: комментарий от aiqu6Ait

при работе с регистрами учитывать ее придется тебе самому

Так это же только преимущество, если ты не понимаешь.

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

И не всегда предсказуемый самописный код работает быстрее куба.

Всегда. В этом можешь даже не сомневаться. А в некоторых случаях я бы даже отнёс тормозной код куба к разряду забагованного. Например, как когда-то обсуждали на этом форуме, невозможность достижения максимальной скорости USB. Хеллоу-ворлд в несколько килобайт, просто моргающий СД, который собирается десятки секунд — прекрасный показатель «качества» молниеносного кубокода.

Не смеши мои тапочки.

anonymous
()
Ответ на: комментарий от anonymous

ну я же не вы, не вру что все работает, когда ничего не работает. какие нужны подробности? если уже купил два st-link один st-link_v2 другой st-link_v3mini. скачал и установил ubuntu 18. после сделал так

apt-get install libusb-1.0.0-dev
sudo apt install openjdk-8-jre-headless
sudo update-alternatives --config java
sudo apt purge openjfx
sudo apt install openjfx=8u161-b12-1ubuntu2 libopenjfx-jni=8u161-b12-1ubuntu2
libopenjfx-java=8u161-b12-1ubuntu2
sudo apt-mark hold openjfx libopenjfx-jni libopenjfx-java
пошел на оффсайт и скачал stm32CubeProgrammer.

 скопирова дрова из 
STM32CubeProgrammer/driver в /etc/udev/rules.d и на всякий случай наоборот.

запустил сначала c st-link_v2 -нет, пишет что старый. втыкаю st-link-v3mini тогда просто вылетает. сношу ubuntu18 и ставлю ubuntu 20. делаю

apt-get install libusb-1.0.0-dev
и устанавливаю stm32CubeProgrammer и после копирую дрова. и что?* ну стыкаю st-linkV2 -говорит что старый, втыкаю st-link_v3Mini просто вылетает.

а теперь по делу.

ТЕБЕ ЭТО УЖЕ ОБЪЯСНЯЛИ

ты что вранье называешь объяснением? Linux и софт вот читайте говорят что у всех все работает. говорят что надо st-flash новой версии с гита, иду и собираю-НЕ РАБОТАЕТ. ПРОСТО после попытки прошивки МК не определяется после пока не сделаешь полное стирание falsh.

 V2J17S4 serial: 303030303030303030303031 flash: 0 (pagesize: 0) sram: 0 chipid: 0x0000 descr: unknown device сразу размер sram cтановится равным нулю

Ну ок, говорят что надо openocd. иду и собираю новую из source. И что? да не РАБОТАЕТ! вот версия st-flash

v1.7.0
а вот выводи после попытки прошить. V2J17S4 serial: 303030303030303030303031 flash: 0 (pagesize: 0) sram: 0 chipid: 0x0000 descr: unknown device

И ТЫ ЖИВОТИНКА МОЕ ЖЕЛАНИЕ РАЗОБРАТЬСЯ ВО ВСЕМ ЭТОМ ВРАНЬЕ НАЗЫВАЕШЬ ФЛУДОМ, НО САМО ВАШЕ ВРАНЬЕ ТЫ ЗОВЕШЬ ОБЪЯСНЕНИЕМ. ВОТ

ТЕБЕ ЭТО УЖЕ ОБЪЯСНЯЛИ

вы не объяснили вы наврали. и после у тебя еще поворачивается язык сказать что я

мразь и гнида, ради развлечения переводящая время и силы форумчан

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

Assembler
()
Ответ на: комментарий от Assembler

Да-да. Мы тебе всё врём. Всем форумом сговорились, чтобы сжить тебя со свету, и испытываем несказанную радость от твоих страданий, ахахаха. А даже когда не врём, то самую чуточку подвираем. Чтобы было похоже на правду, ты повёлся, и потом был жестоко разочарован. Единственный способ этого избежать — не ходить на этот форум и ничего здесь не писать. Тогда и разочаровываться не придётся.

Вот ещё порция сладкой лжи (страдай!):

У тебя st-linkv2 — китайское барахло со старой прошивкой. Внезапно, в st-link есть прошивка и её приходится обновлять для новых контроллеров. Более того, обновляется официальной прошивкой с гарантией только официальный st-link. С китайскими свистками может быть миллион сюрпризов — потому что неизвестно что там внутри, хоть и выглядят все одинаково. И именно об этом тебе талдычат официальные тулзы — old, и всё тут.

v3 mini тоже китайский? Где брал и почём?

anonymous
()
Ответ на: комментарий от anonymous

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

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

Assembler
()

Примерно так же как учить паскаль перед тем как браться за си.

С одной стороны, AVR всё ещё используют в разработке, но больше или легасёвой или наколеночной.

Я бы рекомендовал сразу взяться за STM, или другой армовый контроллер. Если что перепрыгнуть на какие-нибудь atmel, nordic, efm или ещё какую дичь будет проще.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от anonymous

Это когда ты вкурил ту самую схемку с тактованием. После этого там действительно всё просто, логично и делается не приходя в сознание. Но до этого момента нихера непонятно.

З.Ы. Эдик, тебя опять побанили штоле?

Dark_SavanT ★★★★★
()
Последнее исправление: Dark_SavanT (всего исправлений: 1)
Ответ на: комментарий от Dark_SavanT

Эдик, тебя опять побанили штоле

Так уже, примерно, как полгода он снова в бане

snake266 ★★
() автор топика
Ответ на: комментарий от Dark_SavanT

Я бы рекомендовал сразу взяться за STM, или другой армовый контроллер

Ну, как я уже писал, идея сначала посидеть на avr от того, что я не думая о конфигурации камня, а только о прикладной задаче, могу изучать протоколы: i2c, spi, uart и т.д. – то есть сразу изучаю те вещи, которые будут работать одинаково (скорее всего) на всех МК и я смогу перенести этот опыт на, скорее всего, на любое семейство МК. А потом я уже с некоторым опытом вкачусь и в stm.

А так, я думал stm32 изучать параллельно, когда настроение есть. Сейчас, к примеру, я изучаю i2c (потому что у меня сейчас, на руках, нет ничего, что использует uart или spi), пишу маленькую библиотеку для тренировки и одного учебного проекта, на avr, а перед сном читаю про stm32: как работать с тем же i2c, настройка и прочее.

snake266 ★★
() автор топика
Ответ на: комментарий от snake266

Ты сравни сраный 8-битный авр и такой же 8-битный STM8. По цене аврка в пролете. По периферии - тоже. Ну и нафиг вообще аврки использовать?

Но и 8-битки - говно по сравнению с 32-битными! Ведь просто кайф компилировать нормальным gcc, а не кривым scdd. Да и возможностей полным-полно. По цене тот же STM32F030 в 20-ногом корпусе не сильно отличается от STM8S105. Применять 8-битки имеет смысл лишь если тебе нужно выпускать миллионные партии железа, и там важен каждый сэкономленный цент. Вот тогда придется втыкать копеечные китайские нувотоны - клоны STM8S003. Или что-нибудь похожее. А то и вообще одноразово программируемые МК.

anonymous
()
Ответ на: комментарий от anonymous

Ну и нафиг вообще аврки использовать?

Ну для меня, если честно, это больше историческое стечения обстоятельств. Я лет пять назад начинал на ардуине, потом купил avr-ки, вот я сейчас и пользуюсь тем, что когда-то купил. А так, я через неделю куплю себе discovery board на stm32f0 и там уже буду смотреть, пробовать и изучать.

Ведь просто кайф компилировать нормальным gcc, а не кривым scdd

Да, а еще после gcc-avr (я, если честно, был удивлен, что это только 5-ый gcc), свежий 11-ый gcc как глоток свежего воздуха.

snake266 ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.