ARM ТРЕД #2 314976 В конец треда | Веб
Ибо прошлый >>187056 (OP) не всплывает. Здесь мы будем обсуждать микроконтроллеры с этой потрясающей новой современной архитектурой. Только C/C++, IAR/GCC, никаких майкрософтских потуг.

Сам я столкнулся с ней на работе, всё пишу под SAM3 и ATSAM91. Все нравки, внезапно стало доставлять. Планирую накатить линукс и сам собрать ядро.
2 314979
Мне похуй на тебя, я DIY бомж.

>SAM3 и ATSAM91


Зачем мне твое говно? В чем смысл треда для самого себя? Радач - твой личный бложик? Иди выебывайся в другом месте, петух.
3 314981
>>314979

>Иди выебывайся в другом месте, петух.


Это копипаста первого АРМ-треда, довн. Он утонул и не бампается.
4 314987
>>314979

>Выёбывается на АРМ-тред


>Иди выебывайся в другом месте, петух.


/0
5 314996
>>314976 (OP)
Почему не создать простой тред про STM32?
6 315001
>>314996
Потому, что иди нахуй https://2ch.hk/ra/res/298779.html (М) вот почему.
Помимо ST есть ещё овер 9000 фирм со своими чипами. Здесь даже в утонувшем ардуинотреде томился тайный любитель nRF51822. Куда ему податься с такими-то фетишами, кроме как в АРМ-тред?
7 315007
>>314976 (OP)
Сук, сел с блокнотом и старым тредом дабы сделать из него выжымку сакральных знаний и достижений для будующих тредов и.... нихуя там полезного нет. Ни ссылок, ни вдумчивых разборов кода, одна петушня понтуется своими макетками.
8 315011
>>315007
Неправда.
Для вдумчивого ньюфага там дохуищща полезной инфы.
Кстати, как скачать тред целиком, со всей хуйнёй?
Скрипт писать лень, может что готовое есть?
9 315016
>>315011
>>315011

>как скачать тред целиком, со всей хуйнёй?


Открыть и сохранить страницу уже запретили?
1003302920.jpg68 Кб, 512x600
10 315032
>>315007
Подвачну. Чистый бред. Нет чтобы узкоспециализированный тред STM32 запилить, а так всё и ни о чём.
11 315033
>>315032

>узкоспециализированный тред STM32 запилить


Ну давай думать шапку, да и пилить. Тред сам себя не запилит.
12 315045
>>315032

>узкоспециализированный тред STM32


Внимательно рассмотри контроллер на прилагающейся фотографии. Можешь ли ты представить себе, как он не справляется с расчетами в long double и невнятно виснет? Можешь представить, что он пропускает в очереди таски из-за нехватки оперативной памяти? А то, что он работает через раз из-за помехи при включении света в комнате? Ты видишь в нем контроллер, которому не хватает пинов под управление LCD с параллельным интерфейсом?
Теперь посмотри на него еще раз. Видишь ли ты на нем дорогой металлокерамический корпус? Может IDE для разработки под него стоит безумных денег и требует жутко производительного ПеКа? Он требует сверхмощного интеллекта для работы с ним? Или для покупки его необходимо продать автомобиль?
Посмотри снова на этот контроллер и спроси самого себя, почему ты еще не программируешь под него?
Почему ты до сих пор пишешь на wiring и боишься сделать шаг в сторону?
13 315138
>>315045
Для РФ график не особо актуален. Тут PIC+MSP430/MSP432+AtMega отъедают 60% бизнеса по микроконтроллерам.
14 315149
Почему в STM32F4 такие мозголомные примеры в Кубе? Почему интернет заполонен какими-то ебанутыми, несовместимыми со здравым рассудком примерами? В одних HAL, в других SPL, третьи вообще говняют свои конструкции и хуярят байты налево и направо? Почему нет нормальных файлов справки и хоть какого-то единства? Как же мне печот-то, передать не могу.
32.JPG48 Кб, 564x734
15 315162
>>315045
Книжка по STM32. Пока не читал.
16 315165
>>315162
https://yadi.sk/i/d7Gu5hSv3TFEqF
Ссылка чот не прилипла
17 315184
>>315162
Годная книжка.
Автор охуенен.
Какого года у тебя? У меня есть 2016.
На leanpub у него последняя версия январь 2018.

Рекомендую его бложик:
https://www.carminenoviello.com/

Например, вот этот пост весьма доставил:
https://www.carminenoviello.com/2015/09/04/precisely-measure-microseconds-stm32/

Есть ещё книжка Discovering the STM32 Microcontroller (бесплатная):
https://www.cs.indiana.edu/~geobrown/book.pdf
Там про F100.
021.PNG43 Кб, 815x343
18 315190
>>315184

>Какого года у тебя?

19 315199
>>315190
Качнул, спасибо.

>>315149
Да, документация и информационная поддержка в целом - просто пиздец какой-то.
И HAL - лютое говно, даже на мой ньюфажеский взгляд. Собственно, буква A (abstraction) - отсутствует напрочь. Ну, или мы с ними по-разному понимаем слово "абстракция".

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

Короче, на программистах они явно экономят, судя по тому, что уже много лет так ничего путного и не могут родить.
20 315202
>>315199

>вообще всё, кроме HAL - теперь считается deprecated и не рекомендуется к использованию.


С одной стороны заебись, хоть не будет этой кучи несовместимого кода.
21 315214
>>315199

>всё, кроме HAL - теперь считается deprecated


CMSIS кто-то запретил? А как же Low-Layer (LL) API, который практически тот же SPL?

>Собственно, буква A (abstraction) - отсутствует напрочь.


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

>Короче, на программистах они явно экономят, судя по тому, что уже много лет так ничего путного и не могут родить.


Кортексы много кто делает, может стоит найти микроконтроллеры с нормальными библиотеками?

>>315202
Если не размазывать взаимодействие с периферией по всему коду, то эта куча кода значительно уменьшится.
sage 22 315229
>>315214

>LL


Да, кстати, про него я и забыл.

>предделители


Вот именно.
Ты пишешь требуемый тебе период, а библиотека должна все эти делители сама задать. Типа, частота AHB такая-то, с таймера хочу такую-то, и всё. Плюс - дополнительные параметры для нестандартных случаев.

Если не экономить на программистах, можно дохуя чего наабстрагировать.
sage 23 315230
>>315229
Блядь, да что ж такое, опять сажа сама подставилась.
24 315248
>>315229
Хочу добавить, что Куб, собственно, именно это и делает.
Т.е. вместо продвинутых либ они сделали генератор кода, что для контроллеров - более правильно.

Но, в этом случае HAL (или большая его часть) - просто не нужен. Лишняя промежуточная недо-абстракция.

Они это понимают, видимо, поэтому и сделали LL.
Сначала для микромощных моделей, а теперь и для всех.

Ещё бы они этот генератор как-то окультурили, чтобы он не срал в main.cpp, какие-то точки входа сделали бы, и т.п., было бы вообще охуенно.
25 315256
>>315229

>Типа, частота AHB такая-то, с таймера хочу такую-то, и всё.


Что-то я слабо представляю как это возможно. Например, стоит кварц на 8 МГц и нужно получить после предделителя на входе таймера 3 МГц. Такую частоту можно будет получить только при умножении (в PLL) частоты кварца на число кратное трем. А если нужно получить еще какую-нибудь частоту на другом таймере? По моему еще при разработке схемы придется все это учесть.
26 315257
>>315256
Но ведь у каждого таймера свои предделители?
28 315272
Чуваки, делитесь знаниями по стм32. Я уже писал проекты, но думаю многого ещё не знаю .
29 315282
>>315272

> делитесь знаниями по стм32


>Я уже писал проекты


Ну так и начинай делиться. Я вот, пока только умудрился светодиодом помигать на стм32ф429
30 315285
>>315282
И чем делиться к примеру?
31 315287
>>315045
Посмотрел в его сторну, поговнокодил . Проверил на эмс его и другие . Теперь хочу от него отказаться на веки вечные . Он как бы хороший, но далеко не самый надёжный.
32 315289
>>315262
Ух, прям как обратно в нулевые вернулся.
33 315294
>>315287
Заинтриговал.
Теперь бы неплохо подробностей.
34 315315
>>315294
Мучал наносекндным генератором , без всяких защит , STM32 , STM8 , AVR8 , KINETIS KEAZ . Ну в общем у STM32 помер один пин , а stm8 и KINETIS KEAZ более мужественно выдержали испытание . Так что я лучше их юзать буду , ну ещё другие контроллеры помучаю , когда будет время.
35 315329
>>315315
На одной конференции представитель микрочипа говрил что армы от атмела хороши против помех. Попробуй их
36 315337
>>315272
Поделился тебе за щеку
37 315338
>>315337
Молодец, а теперь проследуй нахуй
38 315340
>>315338
Кокой ты.
Ну так вещай, что тебе конкретно надо, или даташит читай.
39 315345
>>315340
Книги, полезные ресурсы с примерами кодов. Выше книгу вроде советовали, говорят годное.
40 315346
>>315315
Допустим Kinetis KEAZ , на отладочной плате выдержал 4 группу наносекунд , безо всяких дросселей . Купил исчо плату с tms570 он вреде , позиционируется для ответственных применений и сертификат sil-3 имеет . Его попробую следующим .
41 315347
>>315329

>На одной конференции представитель микрочипа говорил что армы от атмела хороши против помех


Там ведь разные семейства . В одном журнале писали что SAM3 умер быстрее STM32 .
42 315348
>>315340
Я хоть и не просил делиться знаниями, но не мог бы ты разъяснить >>315257

Допустим нужно получить (как пример) на входе (т.е. после предделителя) одного таймера 3 МГц, а на входе другого 5 МГц. при тактировании микроконтроллера от кварца на 8 МГц.
Если брать наиболее распространенный (на алиэкспрессе) STM32F103, то это можно получить только поделив частоту кварца на 2 и умножив в PLL на 15. Как тогда можно адекватно сделать:

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

STM32F103C8T6-ARM-STM32-Arduin0.jpg254 Кб, 2256x2256
43 315349
Купил два пикрелейтеда за $2 вместе с ардуиной.

Буду, значит, духовно расти, а иначе пиздец.

Какие ещё есть книги для ньюфагов кроме >>315184 и >>315162 ?

Книги по С всякие валяются, даже пытался в CS50 пока не засыпался на магии с поинтерами в рекурсивных алгоритмах.

Я также взял палёный STLink и просто serial адаптер на FT232RL. Всякая мелочь типа парочки регистров и резисторов пополам с транзисторами едет.
44 315350
>>315349

>Какие ещё есть книги для ньюфагов кроме


Вот тут самое интересное. Никаких. Русскоязычных вообще ноль. Я тоже нуб и это просто пиздос. Ничего вразумительного, по форумам примеры квадратно-гнездовым способом написаны. Перевод кусками RM&DS. Ничего похожего на сообщество пердуинщиков, где можно найти разжеванное как для даунов, тут не жди. Только сам, только хардкор.
45 315351
>>315348
Период же можно получать не только путем изменения тактирования таймера, но и срабатыванием по прерыванию. Или я суть вопроса не так понял?
Другой
46 315354
>>315351
Ещё и в самом таймере есть свои предделители
дополнение
47 315355
>>315348

>то это можно получить только


Ты открой даташит и посмотри, что таймеры (ВСЕ) тактируются с шин APB1&2 и особо частотами ты там не разгуляешься ибо похеришь все тактирование периферии. Чувак и пишет, что настоящая абстракция это когда ты написал какой период хочешь получить на выходе, а HAL сам распихивает делители/умножители.
48 315358
>>315348
Ты путаешь тёплое с мягким.
Я говорил, всего лишь, о программном интерфейсе, а не о том, что библиотека должна магически привести все таймеры к общему знаменателю.
Нельзя, не сходится - выдаёт ошибку, и всё.

Вот тут >>315248 я потом написал, что Куб (генератор кода) лучше, т.к. в библиотеке было бы много лишнего кода, нужного только один раз при старте системы.

Я вообще только знакомлюсь со всем этим.
Но, программирую я давно, просто не для контроллеров.
Поэтому, смотрю на это как программист. И вижу, что в эмбед новые прогрессивные технологии программирования приходят, мягко говоря, с опозданием.
Достаточно посмотреть на уровень работы с кодом в Кейле - пиздец вообще, и это топовая коммерческая ИДЕ за охулиард мегабаксов. Уровень - конец 90-х, в лучшем случае.

Смысл в том, что долгое время контроллеры были маленькими, и писать под них можно было абы-как. Но, постепенно они стали большими, и писать кое-как уже становится напряжно.
49 315359
>>315358

>и писать под них можно было абы-как


>>315358

>и писать кое-как уже становится напряжно.


Мне кажется наоборот. Пока были маленькие, код вылизывался до пиздеца, каждый байт был при деле. А сейчас, когда у меня 2Мб флеша, мне похуй и я хуярю как могу свое мигание светодиодом.
50 315360
>>315359
Я неудачно выразился.
Имелся в виду именно инструментарий.
Т.е. раньше можно было и лопатой выкопать, а теперь заебёшься ей копать, и нужен экскаватор.
51 315362
>>315358
А, ну теперь понятно. Да, по нормальному такое делается в кубе в полуавтоматическом режиме или каким-нибудь препроцессором в процессе компиляции. Пихать это внутрь микроконтроллера просто бессмысленно.

>Достаточно посмотреть на уровень работы с кодом в Кейле


Я думаю ты это и так знаешь, но на всякий случай скажу. Тот же компилятор, что и в кейле, используется в ARM Development Studio (это на эклипсе). Вообще никто не мешает использовать gcc совместно с практически любой современной IDE. Еще я пробовал использовать armcc вместе с clion, но ломалось почти все кроме компиляции.
52 315363
>>315359
Вот, посмотри, как моргают светодиодом на любой STM32 Nucleo в Mbed OS, с помощью таймера (тикера):
https://os.mbed.com/teams/ST/code/Nucleo_ticker/file/7773a5ce9853/main.cpp/

Тикер тикает каждые 0.1 сек.
Весь код - 17 строк, включая пробелы.
Никакой ёбалы, никаких делителей-хуителей и прочего.

Бинарник получается 27 Кб, примерно, для F446.
Естественно, это рантайм мбедовский столько занимает, а не сам код. Т.е., при добавлении функционала размер будет расти не так сильно.

Как ты понимаешь, Nucleo - это голый контроллер, со светодиодом и кнопкой. Точно так же можно программировать любую плату на STM32, надо просто подкрутить конфигурацию.
53 315364
>>315362

> CLion


Вот это вот пробовал?
https://blog.jetbrains.com/clion/2017/12/clion-for-embedded-development-part-ii/

Я пока не пробовал, но собираюсь.
54 315365
>>315363

>Никакой ёбалы, никаких делителей-хуителей и прочего.


Но ведь для этого есть Ардуино? Она специально придумана, чтобы оградить впечатлительный мозг от таких сложностей как предделители и прочая ебала.
55 315366
>>315364
А теперь сделай на этом ардуиноподобном поделии частотомер, не используя прямую запись в регистры, только функции mdbed.
56 315367
>>315366
Это сюда >>315363 , Промазал.
57 315368
>>315363

>Бинарник получается 27 Кб


Я тут в соседнем треде про стм8, рожал в муках датчик влажности на стм-овской HTS221. Даже с моим кривейшим говнокодом, мне хватило 5кб на тактирование,функцию задержек, само чтение с датчика и математические манипуляции с RAW-данными, пересчет в двоично десятичный код и отправку этой ебалы по UART. Вот сейчас подзавис с основной частью, которая будет на стм32ф4 с дисплеями и тачскринами все это принимать, думать над принятым и показывать в человекоудобном виде. Если только мои пропитые мозги не охуеют от такого.
58 315369
>>315366
На этом поделии никто не запрещает писать в регистры. Надо просто разобраться с работой ОС, чтобы не завалить ничего. Таймер там системой используется только один (2-й, по-моему). Остальное - доступно.

И речь шла о "моргании светодиодом".
Вообще, Mbed заточен под IOT, и для этих целей - просто охуенен.

>чтобы оградить впечатлительный мозг от таких сложностей


Я не впечатлительный.
Я ленивый.
Это разные вещи, лол.

Про Mbed vs Arduino есть кино:
https://www.youtube.com/watch?v=EJVTSSdZJoU
59 315370
>>315349
>>315350
Есть русскоязычные сайты, местами годные.
Гугол гуглит на раз.

Например:
http://narodstream.ru/stm-urok-15-hal-usart-dma/

http://we.easyelectronics.ru/STM32/rukovodstvo-k-bystromu-startu-po-rabote-s-periferiey-stm32f10x.html

У ардуинщика, скорее, проблемы будут из-за того, что тут надо иметь дело с голым контроллером.
Но, контроллеры все одинаковые, по большому счёту.
Поэтому, может быть полезно поупражняться с AVR без ардуино, чтобы было что-то знакомое, для начала. Инфы полно, гугол в помощь.
60 315371
>>315370

>Инфы полно, гугол в помощь.


Я с этим и не спорю. Но чтобы продвинуться на шаг, приходится выгугливать килотонны иногда абсолютно противоречивых примеров и инфы.
61 315372
>>315364
Нет, в clion так не пробовал. Тем более что я STM не использую, а тот плагин вроде в основном для автоматической генерации скриптов cmake для STM. И регистры так смотреть неудобно.
Использую сейчас для отладки ozone, как (там же) написано в первой части. Для прошивки (без отладки) приделал аналогичным образом j-flash.

Вообще-то все действия, описанные во второй части, можно сделать без плагина. Достаточно лишь использовать "GDB remote debug", там нужно лишь задать команду запуска сервера (например openocd или j-link gdb) в окошке "before launch", указать порт сервера и elf-файл.
62 315382
>>315368

> HTS221


И как оно?
В смысле - точность, надёжность, диапазон?
Температуру им же меряешь?
А давление чем?
63 315388
>>315382

>В смысле - точность, надёжность, диапазон?


Сравнил показания с Si7021, расхождение в пределах погрешностей.

>А давление чем?


А мне оно не нужно. Это датчики в подвал, чтобы мерять влажность и включать вентиляцию. Температуру им же меряю.
64 315435
Кто занимался байтоебством в fat32? Пытаюсь считать загрузочный сектор, а он мне все нулями отвечает. Че за хуйня?
65 315437
>>315435
Отбой, нашел костыли для исправления
66 315484
А кто может пояснить, почему в русском сегменте сети так ненавидят HAL? Для хобби охуительная штука, по крайней мере лучше чем CMSIS или SPL. Англоязычные юзеры кипятком ссут, только наши копротивляются.
67 315487
>>315484

>так ненавидят HAL?


Почему ты так решил? Меня бесит полный кавардак в учебных примерах. Одни в HAL, другие в SPL, третьи вообще самопальное байтоебство проповедуют, четвертые орут ТОЛЬКОASM!!!
68 315489
>>315487
Смотрел ютубы, читал изиэлектроникс, двач, и прочие ресурсы. Везде одинаковые лучи поноса в сторону HAL, и при этом те же люди топят за SPL, хотя за бугром это общепризнанный моветон уже больше года.
69 315491
>>315489

>двач


Ну охуеть какой авторитетный сайт
70 315493
>>315489
не парься
HAL очень гут для начинающих
71 315494
>>315491
Изиэлектроникс не лучше будет. Тут хотя бы ПЛИС-тред есть. Был еще ЦОС, но умные аноны разбежались.

Вообще HAL сложнее в освоении. Если для использования более простых библиотек достаточно прочтения референс мануала на микроконтроллер, то для HAL придется читать еще и документацию к HAL. Вообще код с SPL можно перенести на современный LL API простым переименованием в большинстве случаев.
Хоть я сам не пишу для STM, но думаю что стоит использовать LL API и немного HAL (для таких вещей как USB).
72 315496
>>315493
А чего то прихуел гляда в hal и ни хуя не понял как он работает . Толи я тупой мудак , то ли блеять не надо пытаться понять и просто вызывать функции .
74 315504
>>315500
Это урочки на уровне тыкаем туды-сюды и заебись .
75 315505
Все это дело вкуса, кому то удобно использовать HAL, кому то нет.
Я использую SPL, раньше юзал прямое обращение к регистрам, мне норм. Хорошо написано, нет геморроя по подключению в проект. Всегда можно проследить что функции делают на низком уровне.
76 315513
>>315505

>ямое обращение к регистрам, мне норм. Хорошо написано, нет геморроя по подключению в проект. Всегда можно проследить что функции делают на низком уровне.


А как в HAL это же самое проследить ?
77 315514
>>315494
LL не умеет в переферию, как пишут стмовцы, это библиотека для работы с регистрами.

The HAL offers high-level and feature-oriented APIs, with a high-portability level. They hide the MCU and peripheral complexity to end-user. The LL offers low-level APIs at registers level, with better optimization but less portability. They require deep knowledge of the MCU and peripherals specifications

За себя могу сказать, что когда писал функцию микросекундных задержек, не нашел как HAL'ом установить время работы таймера в one-pulse mode. Поэтому проще было вписать значение в регистр напрямую. И до сих пор все прекрасно работает.
халк.PNG58 Кб, 583x411
78 315515
>>315514

> в one-pulse mode.

79 315516
>>315515
От жеж блядь. Проглядел.
80 315518
>>315516
Хотя не. Вместо того, чтобы каждый раз запускать Init проще было записать такое:
TIM4->ARR = us - 1;
HAL_TIM_Base_Start(&htim4);
while ((TIM4->CR1 & TIM_CR1_CEN) != 0);
81 315519
На арме такую собаку можно захуярить?
https://youtu.be/kHBLaw5nfzk
82 315524
>>315513
Спуститься на самое дно)
А если серьезно, я хз. К HAL вообще не притрагивался.
83 315528
>>315513

>А как в HAL это же самое проследить ?



Читай исходники.
Выброси Кейл и начни пользоваться Eclipse, а лучше - TrueSTUDIO - она сейчас стала бесплатной для STM32, и это та же эклипса, только допиленная до состояния коммерческого продукта - отладка, просмотр регистров etc. С кубом работает на ура, сразу, без костылей.

Так вот - создаёшь в кубе проект, экспортируешь в TrueSTUDIO, открываешь main.c и Ctrl+click-аешь мышкой в функции HAL_ololo_xxx() и во всё остальное. Читаешь, прёшься, умнеешь.

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

Очень удобно быстро смотреть структуры - короче, совершенно другой уровень работы с кодом.
84 315530
>>315528
извините, а чем кеил плох? (помимо внешнего вида из 90ых)
85 315533
>>315528

>Ctrl+click-аешь мышкой в функции HAL_ololo_xxx()


Дык в Кейле тыкаешь в функцию правой кнопкой и в Go To Reference To 'HAL_YOBA_Function(xxx)'
86 315535
>>315530
>>315533
Дело не во внешнем виде.
Это вообще разные вещи по уровню работы с кодом. Потом можно обратно на Кейл вернуться, когда освоишься с темой.

Эклипса тоже хуйня, на самом деле, по сравнению с тем, что делает JetBrains (CLion). Но, с лайоном будет гораздо больше возни - он под эмбед пока не заточен.
87 315537
Перешёл в этом году на VisualGDB, брал на рто. Полет нормальный, брат жив. О кейле забыл как о позорном прошлом. С кубом работает через импорт проекта, изменения подхватывает, есть свой дебаг с графиками и регистрами.
88 315550
>>315535

>Эклипса тоже хуйня


>>315528

>ачни пользоваться Eclipse, а лучше - TrueSTUDIO


Лучше я начну с купленного на торрентах Кейла. А вот когда я буду спокойно ориентироваться в коде, разберусь в тонкостях использования всяких -хуй -пизда -джигурда в настройках компилирования, я перестану фалломорфировать при виде непонятных ошибок линковщика, и т.п. Вот тогда я полезу в дебри Эклипя и прочего Линукса. Извините.
89 315563
>>315550
Ну, это дело хозяйское.

Алсо, на торрентах достаточно купить только кейген.
А кейл потом свежий купить прямо на сайте, лол.

Уточню, однако, что TrueSTUDIO - это _коммерческая_ IDE для ARM, которая с этого года стала бесплатной (только для STM32).
Скачал - поставил - всё работает.

Там нет непонятных ошибок линкера. Сохраняешь проект из куба, открываешь - компилируешь - запускаешь прямо на чипе сразу отладку. Одной кнопкой, как и в кейле.

Минус - в кейле несколько лучше компилирует компилятор.

Линукс же тут вообще не при делах.

Есть ещё Segger, кстати, он тоже официально бесплатный для некоммерческих проектов.
А IAR покупается примерно так же, как и кейл.
90 315564
>>315162
Есть такое же для stm8?
91 315573
>>315564
ОПЯТЬ ТЫ? ИЗЫДИ, ГОВНОЕДИНА!
92 315579
>>315563
Или ставится Visual Studio 2017, потом на торренте покупается VisualGDB. Устанавливается тоже далее, далее, ок. После запускаешь плагин в ВС, один раз проходишь процедуру настройки качая OpenOCD, тулчейн и пак с мк для работы с стм32. И у тебя в качестве иде для мк появляется вижуал студио с интеллисенсом и прочими ништяками.
93 315582
Кстати кто нибудь пользуется системой контроля версий? Интересует что нибудь удобное с минимальной еблей в настройке
94 315603
>>315582

>кто нибудь пользуется системой контроля версий?


Пока нет, но уже читаю книжку "Git в помощь молодому колхознику" ибо уже такой пиздец в папках проектов мигающих светодиодов, что ебануться можно.
95 315604
>>315603
Гит же онлайн. Есть что то офлайновое?
96 315605
>>315604

>Гит же онлайн


Здрастия. Он и в оффлайне себя нихуево чувствует.
97 315607
>>315605
Виноват, я совсем нихуя в этом не разбираюсь.
98 315609
>>315607
Почитай Pro Git, она на русском есть, реально нужная вещь ибо пиздец в файлах настает молниеносно.
99 315612
>>315609
Спасибо.
А то сейчас у меня просто копипаст папки проекта с указанием в имени что я там делаю. Вот такой вот колхоз
100 315613
>>315612
Да у меня такой же. Плюс наработки которые вроде не пригодились, отдельными файлами сохраняю, чтобы когда понадобятся скопипастить их. В общем пиздос.
101 315614
>>315604
В онлайн - ГитХаб.
И BitBucket.

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

Если работаешь один и на одном компьютере - онлайн нужен только для бекапа. И то, никто тебе не мешает просто бекапить папку .git (где вся история и лежит).

В онлайн для начала лезть вообще не надо.
Всё абсолютно (кроме групповой работы) доступно в оффлайне.
Если надо будет, можно залить потом.
В качестве gui (если в иде нет поддержки, типа кейла) можно использовать SourceTree.
102 315616
>>315612

>просто копипаст папки проекта с указанием в имени что я там делаю



Ты не поверишь, но "коммит" в гите - это и есть снимок текущей версии папки проекта (всех отслеживаемых файлов), с комментарием - что ты наделал с прошлой версии.

Можно отслеживать не все файлы, а только нужные. Также, есть файл .gitignore, где перечислено то, что отслеживать вообще никогда не надо - бинарники и т.п.

Можно вернуться к прошлой версии всего проекта и обратно. Можно в гуи просто посмотреть старую версию одного файла и т.д.
103 315622
>>315614
В качестве гуя ещё хорош GitKraken.
104 315859
>>315504
там даётся необходимый базис для начала.
а уж куда дальше сам разовьёшься - зависит только от тебя.
и даже некоторые ошибки в том курсе тоже присутствуют. скажем, неточности.
105 315861
>>315859
Вообще кстати да, лучше начальные вещи типо моргания сделать на основе таких уроков. А после уже выходить плавно на самостоятельное программирование.
Сам начинал с видеокурса по stm32f4 на Ютубе (кеил + spl)
106 315865
>>315861

>видеокурса


Как же мне печот от этой новомодной хуерги.
107 315867
>>315865
Тебе что, слово не нравится? Как тогда это называть, видосиками?
108 315868
>>315867
От изучения программирования контроллеров по видосикам. Я еще понимаю гончарному мастерству или вышивке арматурой можно поучиться по видиво, но, блядь, все эти "видеоуроки автокадного мастерства", "программируем на крестах через два видеоурока" и т.п. Неужели человечество настолько отупело, что текста уже не в силах понять? Надо как мартышка повторять движения мышей как на видиво?
109 315869
>>315868
Слова можно понимать по разному, к тому же у писателей учебников стоит задача минимизировать описания и по возможности уменьшать количество страниц текста. В итоге книги получаются для тех, кто уже в теме.

А в видео действия имеют единственный смысл, а именно то, что сделал автор.
110 315871
>>315868
Считаю видео более наглядным чем десять страниц текста. Легче посмотреть куда чувак тыкает чтобы создать проект, чем читать это. И мы говорим не о сложным проектах, а только о начальном уровне. Никто не говорит о видео "создаём терминатора за 10 минут".
111 315872
>>315871

>Легче посмотреть куда чувак тыкает чтобы создать проект,


Это папка тыкал твоей мамке, чтоб создать тебя, а мышкой - КЛИКАЮТ!
112 315873
>>315872
Ебать ты придирчивый, чувак. Ты ещё скажи не дырка, а отверстие. Корабли не плавают, а ходят.
113 315877
Сам у narod stream смотрел видосы и считаю это охуенным подспорьем. Олсо посмотрел работу с 769 дискавери и 767 нуклео, и решил что мне дискавери не нужен, буду брать нуклео.
114 315879
>>315877
А в чем разница между Дискавери и нуклео? Поясни, если не сложно. Сам начинал с дискавери, недавно надыбал себе набор с всякими доп.платами и платой нуклео, но не трогал ещё.
115 315881
>>315879
На дискавери уже напаяно всякой хуйни типа MEMS, экрана, тюльпанов для I2S, разъема для камеры. Нуклео, это как китайский стм32ф103 - камень + программатор + пара диодов + разводка ножек. Первый пик диско, второй нуклео.
116 315882
>>315881

>Первый пик диско


Первый пик - eval
STM32F769I-DISCOC94839.png767 Кб, 1240x1754
117 315884
>>315882
Ст говорит диско.
en.stm32f746g-disco.jpg371 Кб, 1000x714
118 315886
Есть еще такой вариант Discovery, на другой серии F7.
119 315889
>>315884
>>315886
Значит я отстал от жызни. Хуя они наворотили-то.
769-eval.jpg390 Кб, 678x683
120 315891
>>315882
Вот Eval.
121 315898
А самое главное - готовится к выходу нуклео на чипе H743ZIT, и стоить будет как вся серия ~35$. И это за кристалл с мегабайтом оперативы, 400 МГц тактовой, двумя встроенными оу с полосой в 8 МГц, хайрез таймером (2.5ns), и отдельно вынесенным двумя компараторами.
122 315900
>>315898

>И это за кристалл


У него у самого цена не отличается от 429 серии. Хотел купить, но потом передумал, шибко быстрый.
123 315903
>>315868
>>315871
Правда - она посередине.

Некоторые вещи проще рассказать и показать, чем написать понятно и непротиворечиво.
Плюс - для начинающего важно присутствие живого учителя, или, хотя-бы, его имитация.
124 315989
>>315873
Но почему тогда капитан дальнего ПЛАВАНИЯ? :-)
125 316008
>>315989
Хороший троллинг, если бы мне было не похуй)
126 316009
>>316008

>если бы мне было не похуй)


Тебе настолько ПОХУЙ, что ты решил ответить?
127 316010
>>316009
Конечно. Хули еще делать в 8 утра в субботу.
128 316011
>>316010
вот бездельники!
129 316012
>>316011
ниче, щас чай попью, жопу почешу и продолжу SAM E70 изучать
130 316013
Лучше скажите, кто фат систему прикручивал а свои проекты? Интересует как форматировать с помощью контроллера флешку, потому что в моей либе эта функция отсутствует
131 316015
>>316012
почем брал?
а я хату прибираю - завтра жену с дочкой буду забирать :-)
132 316016
>>316015
из роддома )
133 316017
>>316015
бесплатно. На работе выписали, а я домой пока утащил в свободное время изучать, поскольку в будущем это может пригодится.
134 316018
>>316015
поздравляю с пополнением)
135 316020
>>316017
В Atmel Studio прогаешь?
136 316021
>>316018
Спасибо
137 316023

>>31020


Ну да. Красиво, удобненько. Мне хватает с головой. К тому же в конце концов официальное ПО от производителей
138 316505
>>314976 (OP)
Анон, какова хуя HAL_Delay не работает? Надо что-то инициализировать?
139 316508
>>316505

>Надо что-то инициализировать?


Да. Мозг.
140 316514
>>316508
Лол. Короче выяснил в чем дело. Какого-то хуя в hal из кейла нет обработчика sysTick и потому программа виснет.
141 316516
>>316514
И почему у меня всё работает?
Наверное, потому что ты пиздоглазое мудило.
142 316532
Единственный косяк с systick у меня - 1602 с i2c экстендером не заводится выше чем на 16 МГц тактовой ф103-его.
143 316536
>>316516
Завалите ка свой ебальничек, сударь малолетний.
144 316622
145 316625
>>316622
Можно.
fa17c635681842d6b94add76cf4b2beb.jpg319 Кб, 1920x1080
146 316652
>>316622
Эту хуйню через любой юсб-уарт адаптер можно прошить.
147 316656
>>316652
Вот только отладить не получится.
148 316681
настроил сигма-дельта АЦП и сохранение через ДМА в переменную. Но если просто запускаешь прошивку, в переменную запись не идет. А если запускаешь дебаг в кейле то все збс. Что за фигня вообще ?
149 316684
>>316681
Не знаю что такое "просто запустить прошивку", но это выглядит похожим на проебанный volatile.
150 316686
>>316684
ну, если просто залить прошивку на контроллер и запустить его, то в таком случае контроллер не видит в переменной результат преобразования АЦП.
Если запустить в режиме дебага, в переменную пишется результат и все работает как надо.
151 316695
>>316686
А ты область видимости переменной какую сделал? Может она у тебя дальше функции и не видна?
152 316702
>>316695
Видимость нормальная, должно видеть. Иначе мне скорее всего ошибку бы выдало что такой переменной не существует при компиляции
154 316704
>>316703
Бля, я практически уверен что переменную видит.
155 316706
>>316681

>сохранение через ДМА в переменную


А это как? Я думал, что DMA это прямой доступ к памяти и ты сохраняешь не в переменную, а передаешь указатель на эти данные.
156 316761
>>316706
При настройке дма ты указываешь два адреса памяти. Откуда считать данные и по какому адресу их записать. После запуска программы дма молотит без твоей помощи информацию, т.е. Считывает быйты по адресу (к примеру)по которому находится регистр АЦП и записывает эти байты в память по второму адресу, который принадлежит переменной.
157 316781
Короче разобрался, пидорское sdadc не хотело работать с дма, потому что я сначала настраивал и запускал АЦП, а потом уже делал дела с дма. А надо было настроить ацп, включить его, настроить дма и только потом запускать преобразования
158 317523
Поясните за аппаратное умножение и все такое. Оно автоматически используется при вычислениях или надо что то намутить для этого?
159 317527
>>317523
Если правильно задано (флагами) ядро для которого компилировать, то все будет использоваться.

На всякий случай добавлю:
1) В Cortex-M0 имеется умножение только 32х32 разряда с 32-разрядным результатом. В M3 уже есть умножение с 64-разрядным результатом, причем есть вариант с накоплением.
2) В Cortex-M3 есть команда деления, которой нет в М0.
3) В Cortex-M4F есть FPU, причем оно бывает в двух вариантах с одинарной точностью (может только float) и с двойной (может float и double). Но в STM32 вроде бы FPU имеется только с одинарной точностью, соответственно вычисления с double будут медленные. Также GCC без дополнительных флагов не использует инструкции FPU, наверное в кейле/иаре также имеется отдельная галочка.
160 317530
>>317527
Не подскажешь как и где правильно такое искать в Гугле (флаги эти) ?
161 317545
>>317530
Я не он, но попробую:
https://gcc.gnu.org/onlinedocs/gcc-6.1.0/gcc/ARM-Options.html

-mfloat-abi=name
-mfpu=name
162 317563
>>317545
Не уверен, но похоже на линукмовые команды
линкер.PNG5 Кб, 581x137
163 317567
>>317563

>но похоже на линукмовые команды


Ваще-то линкеру такие же флаги передаются.
164 317571
>>317563
Это не линуксовые команды.
Это _опции_ - дополнительные параметры при вызове компилятора.
Я же ссылку дал.
Какие именно туда подставлять "name" для STM32Fx - надо гуглить отдельно (о чём и был вопрос).
165 317786
Есть большой массив в оперативке, в который постоянно записывается новые преобразования АЦП. Как при необходимости этот массив максимально быстро сохранить в памяти контроллера?
Пока накидал придумал только:
1) выделение в оперативке еще одно массива для хранения ( может не хватить места)
2) запись во флеш-память (записывает долго )
может есть какие-то нюансы или еще что?
166 317810
>>317786
Т.к. массив только дописывается, то хранить его весь в RAM нет смысла.
Надо иметь буфер, и в фоновом потоке сливать его куда ты там хотел - на флешку или в EPROM.

Можно держать два буфера (указателя).
Пока текущий пишется, другой сливается, потом меняются.
И т.д. и т.п.
дисплей.PNG98 Кб, 1384x646
167 318630
>>314976 (OP)
Есть владельцы STM32F429-Discovery в этом ИТТ треде?
Возник вопрос после вдумчивого раскуривания схемы данного устройства. У него, что, можно встроенный дисплей переключить в последовательный режим и освободить немного портов?
168 333903
Хочу вкатиться, нашёл плату
https://ru.aliexpress.com/item/Free-shipping-STM32F407ZET6-development-board-M4-STM32F4-core-board-arm-development-board-cortex-M4/32689262341.html
Стоит ли брать? Нужен ли к ней программатор?
169 333916
>>333903

>Нужен ли к ней программатор?


Нужен
170 333920
>>333916
Я ещё в ньфаг-треде написал что нужен. Щас он в программаторов тред зайдёт и там спросит какой программатор нужен.
171 333930
>>333903
Не нужен. Там есть загрузчик по uart
172 333934
>>333930
Конвертер USB-UART всё-равно нужен будет.

Кортексач, хочу плотно подсесть на RTOS и смотрю в сторону ChibiOS. Отговори или посоветуй FreeRTOS другую ОС.
173 333947
>>333934

ChibiOS охуенна чуть менее чем полностью

а нахуя тебе нужна RTOS?
174 333982
>>333916
>>333920
>>333930
>>333934
Спасибо, буду разбираться
175 333986
>>333982
Бери отладчик в этом же магазе. https://ru.aliexpress.com/store/product/ST-Link-V2/1817254_32544133138.html Вариант не самый лучший и плата для бомжей, иногда приходит кривая, но в F407ZE полноценный FSMC, ножек больше и цена радует. В нуклее вообще R огрызок.
176 333989
>>333947
Долго думал чем оправдать её применение, но по факту получается только чтоб иметь её в качестве инструмента на будущее.
177 334020
>>333930

>Там есть загрузчик по uart


Нахуя этот гемор если клон ст-линка стоит столько же сколько и конвертер юсб-уарт? Я себе его вообще спаял за пол часа и не парюсь.
178 334167
>>333986
Беру, спасибо большое!
179 336941
Как же хочется покакоть в туалете офисе ST, но я покакну тут.
Сайт ST требует регистрации чтоб что-то скачать. Целые сутки я ждал письма с подтверждением мыла. Пока ждал - запросил ссылку на скачивание без регистрации. Ссылка пришла, но скачивания не произошло. Вообще никак. А ещё краткие описания семейств и в даташитах - путаница пиздец. Документация - ебанько.
SW4STM32 по сути сраный эклипс на яве, что на моём нетбуке с хубунтой превращается в слайдшоу с квестом. После всех установок, обновлений и правок - проект всё-равно не собирался и вылетал с какой-то неведомой мне ошибкой о том, что проект не существует.
ST MCU finder приложение на ведре не понимает, что доступна вафлесеть, и не работает. Все приложения работают, кроме этого.
Сайт с Mbed работает, но онлайн компилятор не раскрывает список "Select platform:". Вводишь имя-хуимя, кликаешь туда, список вываливается, но он пустой.
На винде есть Кеил, но как же я не хочу в винду...
180 336943
>>336941

>Сайт ST


Красноглазый смог собрать ядро и выйти в интернет, спешите видеть. Сайт ST всегда отличался калечностью и уебищностью. Дахе логин у меня происходит секунд 40. Хотя за последние пару лет они довольно хорошо рассортировали материалы по контроллерам и я даже уже и не припомню когда бугуртил в поисках нужного.
А так, заради работы с контроллером можно и винду поставить с кейлом, ты уж целку из себя не строй.
181 336944
>>336943

>можно и винду поставить с кейлом


Дык поставлено, но

>как же я не хочу в винду...


И вообще мой высер никак не отменяет уёбищности описанного. У меня впечатление, что всем вообще похуй, и эти фантики сделали под лозунгами "и так сойдёт" и "хуяк-хуяк и в продакшен".
182 336951
>>336944

>и так сойдёт


Я, скажем так, совсем немного прикоснулся к программированию стм-ок да и вообще контроллеров, прямо на осьмушку шишечки, но на винде не было проблем ни с купленным на торрентах кейлом, ни с STVD для стм8. Про линукс говорить ничего не буду, даже не пытался попробовать.
183 336955
>>336951
Осталось проверить TrueSTUDIO которая решит исход событий вселенского масштаба. Господи, спаси человечество меня, я не хочу в шиндоус.
184 336956
>>336941

>SW4STM32 по сути сраный эклипс на яве


В чем проблема написать мейкфайл? Можно даже готовый взять. Не хочешь мейк - есть CMake и прочие.

>ST MCU finder


>приложение на ведре


Чо? Зачем это тебе?

>онлайн компилятор


Ну это вообще. У тебя в репозитории убунты по любому есть gcc-arm-none-eabi, которым все должно компилироваться.

>Сайт ST требует регистрации чтоб что-то скачать.


Это да, у них все не лучшим образом. А еще микроконтроллерные кортексы не заканчиваются на ST, есть минимум полтора десятка производителей.

>На винде есть Кеил, но как же я не хочу в винду...


У меня почему-то gcc одинаково работает под виндой и линуксом.

>как же я не хочу в винду...


Представь себе, для 8051 ничего кроме SDCC (который по качеству не очень) под линукс нет. А для многих микроконтроллеров и сигнальных процессоров так вообще ничего линуксового нет.
185 336960
>>336956

>мейкфайл


А почему бы IDE просто не заработать как положено?

>Чо? Зачем это тебе?


Случайно наткнулся. Оказалось, что она тоже от ST, и тоже не работает.

>Ну это вообще.


Просто решил попробовать подСТшную ардуину, но оно отказалось работать.

>кортексы не заканчиваются на ST


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

>gcc одинаково работает


Так проблема не в компиляторе.

>вообще ничего линуксового нет


Допустим. Вот только под СТМ32 какбе должно быть, судя по статьям в интернетах, чтоб с ИДЕ, отладкой и без мозготраха. У меня не получилось, например. И, если что, я не ОП треда.
186 336962
187 336963
>>336960
Ну тогда тебе придется взять ардуину или установить винду и все равно взять ардуину.
188 336965
>>336963
На винде Кеил у меня отлично работает. Ардуина в убунте тоже работает, в т.ч. с СТМ (Только в качестве эксперимента. Даже не у ардуинохейтера может взорваться пердак от такого сетапа). Проверю ещё TrueSTUDIO искаропки, который тоже эклипс, и если откажется, то да, придётся винду только для СТМ держать.
189 337292
Аноны, я тут нубас полный, игрался с пердуиной, но чет понял, что зашквар, решил по хардкору вкатиться в стм. Для себя решил для начала сделать простенькую хуйню которая TCP пакет шлет. Я так понял мне надо stm32 discovery купить и некий ethernet модуль. Подскажите, что конкретно брать.
Screenshot2018-09-15 B-L475E-IOT01A - STM32L4 Discovery kit[...].png296 Кб, 931x1181
190 337348
>>337292

>stm32 discovery купить


>и некий ethernet модуль


Бери сразу
191 337349
>>337348
да я уже вчера купил самую простенькую дискавери, теперь все одно Ethernet модуль нужен
192 337350
>>337349
Ну и неправильно. Нужно было брать микроконтроллер с Ethernet MAC, а к нему уже приделывать PHY. Иначе ты бы мог делать то же самое на ардуине с каким-нибудь ENC28J60, даже код отличался бы только в части SPI. Или можно было взять микроконтроллер со встроенным PHY, только таких у ST вроде нет.

>>337292

>понял, что зашквар


Вот это спорно. Безусловно пердуино иде можно назвать зашкваром, но саму плату - не особо. Конечно атмеги устарели, но с чего бы от этого им стать зашкваром?
Для вкатывания атмеги неплохи - в небольшом количестве регистров трудно запутаться. И у них простой ассемблер, который несложно освоить для общего развития.
193 337356
>>337350

>микроконтроллер с Ethernet MAC


Китайцы делают борды с такими?
194 337357
>>337356
Да та же серия от WaveShare, с STM32F2/F4 на борту.
195 337358
>>337356
>>337357
Ушло недописанным. В общем, смотри на платы с 407/207 и 405/205 камнями на борту: https://www.waveshare.com/wiki/Main_Page#STM32
196 337363
>>337356
Некитайцы, кстати, их тоже делают. На стартерките куча плат с STM32/LPC и эзернетом.
197 337366
>>337358
>>337357
Не только, в F107 тоже есть. И вообще армы не заканчиваются на STM32, например со встроенным PHY:
https://www.digikey.com/products/en/development-boards-kits-programmers/evaluation-boards-embedded-mcu-dsp/786?k=MSP432E401Y
https://www.chipdip.ru/search?searchtext=+MSP-EXP432E401Y+
Если от игры с отладками перейти к созданию своих плат, микроконтроллер со встроенным PHY может оказаться получше STM32 из-за упрощения платы и экономии места.
198 337506
я вообще заподозрил неладное, когда читал статьи по stm32, кто-то на хабре писал как пару месяцев готовился к stm32. Еще в другой статье прочитал, что за вечер тут не въехать. Скачал MASTERING stm32, но там 700 страниц. Сам я погроммист на си++ со стажем, а чет зубы то пообломал на микроконтроллере, делители, хуители, что это за параша ебаная. Есть видео где его ебутлитература на русском? Что бы я хотя бы прочитал страниц 100 и всю архитектуру понимал и как там мигать светодиодом и как еще что-нибудь делать?
199 337513
>>314976 (OP)
Господа, есть один STM32F103ZET6. Какой самый минимальный вариант обвязки, чтоб он опознался китайским st-link'ом? Нужно ли запитывать все пины VSS и VDD для этого? Посылать нахуй в гугл смысла нет, буду ставить эксперимент и постепенно подключать, а затем отключать пины, чтоб выяснить, если никто ИТТ не проверял сам.
200 337516
>>337513
Резонатор, питание/земля (можно даже на неправильные ноги) и boot0 если надо
201 337518
>>337516
А ты точно уверен, что ему нужен внешний кварц? Разве SWD не тактирует его сам? Более того, у него же есть внутренняя RC-цепь на 8МГц.
202 337522
>>337518

>SWD не тактирует его сам?


Нет

>есть внутренняя RC-цепь на 8МГц.


Есть, можно даже на горячую ломать кварц и он перейдет обратно на встроенный осциллятор, но 8мгц это все же не 72
203 337523
>>337522

>минимальный вариант обвязки, чтоб он опознался


Я так понимаю, что внешний кварц таки не нужон. Как насчёт соединения всех ног питания? Хватит ли одной пары?
raspberry-pi-circuit-gpio-input-pins.png3 Кб, 359x300
204 337524
>>337523 Хватит, они же все равно объединены защитными диодами как и любые другие выводы.
1875219471286529657.jpg122 Кб, 900x700
205 337525
>>337524
Так у диодов же обратное включение навроде защиты от ESD. Почитал интернеты и Getting started with STM32F10xxx hardware development. Похоже, что там подразумевается внешняя шина и без соединения всех VDD/VSS работать не будет. Энивей, спасибо, завтра буду проверять экспериментально. Обидно если сожгу камень, но, вроде, не должен.
206 337527
>>337525 Погугли и дейва видосик что-то вроде mcu pin power
207 337528
>>337527
*у дейва
208 337529
>>337527
Ну, это другое. Вопрос не в том, чтоб запитать ядро через диод. Нужно наверняка знать, соединены ли внутрисхемно все пины питания. В видео использован МК с одной парой выводов питания. Если использовать МК с двумя парами, но внутрисхемно расцепленными, то такой МК не заведётся подобным образом.
209 337531
>>337527
Не, похоже таки шина внешняя. В даташите ноги питания обозначены и пронумерованы от Vdd_1/Vss_1 до Vdd_11/Vss_11. придётся все пины соединять блять.
210 337737
Сунулся на рутрекер.орг за Кейлом АРМ и не нашёл ничего!
Что хня творится?
211 337740
>>337737
Ром нужно меньше пить, и с попугаем разговаривать. Всё там есть.
212 337745
>>337737
1) Зачем брать взломанную и, возможно, затрояненную версию, когда есть бесплатная версия с ограничением 32 кБ. Твои программы занимают больше 32 кБ флешки?
2) Почему бы не взять GCC?
213 337794
>>337745
У меня второй проект уже занимает больше 32кб
Другой
214 337796
>>337794
Ну, по разному бывает. Но, например: http://fandy.ucoz.org/publ/metalloiskatel_quot_kvazar_quot_quot_quasar_quot/metalloiskatel_quot_quasar_arm_quot/2-1-0-5 занимает около 40 кБ флешки, более старые версии немного меньше.
Хотя, какой-нибудь lwIP даже побольше 32 кБ занимает, или это HAL у STM-щиков такой жирный.
И ты точно о том пишешь? Это ограничение не на размер исходного кода, а на суммарный размер секций данных и кода.
215 337799
>>337740
Нашел только для С51, для АРМ - хер
216 337800
>>337799
Это что такое https://rutracker.org/forum/viewtopic.php?t=5113043 ?
Но для начала ты должен ответить (хотя бы самому себе) чем тебя не устраивает >>337745 Даже если перестанет хватать версии с ограничениями, ты всегда можешь использовать "таблетку" из раздачи с рутрекера. А GCC чем не устраивает?
217 337805
>>337800

>А GCC чем не устраивает?



Под него линкер-скрипты, меморимапы и фьюзы-хуюзы руками на башоперле же писать?
218 337934
>>337805

>на башоперле


На барбершопе
219 338036
>>337800

>А GCC чем не устраивает?


В чем смысл уговаривания низкоквалифицированных специалистов перейти на более сложный софт?
220 338143
>>337800

>А GCC чем не устраивает?


Зачем GCC при наличии божественного Keil?
221 338144
>>338143
Я вообще не понимаю, нахуя тут постоянно свидетели Эклипса и ГЦЦ лезут? 99% посетителей /ра/ даже Ардуинский blink не могут воспроизвести, а им тут начинают затирать про make и прочие линкеры/канпиляторы
222 338149
>>338144
Ну как бы это ARM тред. Это подразумевает, что посетители этого треда осилили хотя бы Си. Осилить после этого остальное уже несложно.
Но писал я не об этом, а о том, что для мигалок кейл воровать не нужно, а для чего-то более сложного можно и GCC же освоить.

>>338143
Ничего, что кейл это IDE вместе с компилятором, а GCC компилятор? Компилятор, не обязательно GCC можно и armcc, можно использовать из самых разных IDE.

>божественного


Тебе хоть есть с чем сравнивать? Как IDE, кейл остался в прошлом веке.
223 338202
>>338149

> Как IDE, кейл остался в прошлом веке.


Опять за эклипс топишь, мудило?
224 338215
>>338202
clion же
225 338234
Чем не устраивает связка Geany OpenOCD DDD везде графический интерфейс
226 338236
>>338215

>clion


И можно без напильника взять готовую сборку и начать кодить для stm32?
227 338242
>>338202
Откуда такая агрессивность? Это реакция на замечание о том, что даже кейл воровать не обязательно?
Если так хочешь эклипс, можешь попробовать TrueSTUDIO или DS-5 Development Studio. Проект создается так же просто как в кейле, но лучше навигация по коду, есть рефакторинг, можно поставить плагины для интеграции с гитом, doxygen и прочим.

>>338215
Нашел что советовать. Оно тормозит на 16 ГБ оперативной памяти, с двумя гигабайтами уже работать совсем невозможно. А под XP вообще не запускается. Лучше бы visual studio советовал.

>>338236
Не знаю что ты называешь напильником, но там необходимо вручную писать CMakeLists.txt, причем не только для микроконтроллеров, а вообще для всего. Так что, наверное, для тебя без напильника никак. Хотя если освоить CMake, то будет все просто.
228 338247
>>338242

>Хотя если освоить CMake, то будет все просто.


Зачем плодить сущности?
Есть же Keil (IAR, TrueSTUDIO), который из коробки/торрентов всё умеет.
На лицензионность я хер клал.
Тот же TrueSTUDIO сейчас для STM32 вообще бесплатный (хотя после Keil он мне не зашёл)
229 338248
230 338249
>>338149

>Как IDE, кейл остался в прошлом веке.


Keil как среда разработки для ARM, а конкретно, для STM32.
Keil не ok, по твоему мнению.
Что взять БЕЗ ГРЁБАНОГО ДОПИЛИВАНИЯ, что бы начать кодить/отлаживать для STM32? Поддержка CubeMX приветствуется. Хотелось бы обоснование выбора.
231 338258
Антуаны, не встречались ли вам на алике готовые модули с stm32f100? Как blue-pill с stm32f103, только с stm32f100.
232 338266
>>338249
Keil. Поменьше опирайся на мнение общественное, и побольше на своё. Какой вообще смысл выбирать что-то, если есть возможность поставить Keil и ниибаца?
233 338268
>>338266
Выбор сейчас огромный, не мудрено реально хороший вариант проебать из-за лени и инерционности мышления. Поэтому и интересуюсь.
234 338273
>>338249

>Зачем плодить сущности?


Ты наверное еще и гит или меркуриал лишними сущностями считаешь.

>Что взять БЕЗ ГРЁБАНОГО ДОПИЛИВАНИЯ


С таким подходом к программированию - только кейл.

>>338268
Если ты в эклипсе (TrueSTUDIO) не заметил никаких преимуществ, то продолжай использовать кейл. А так, в более-менее современных IDE, в том числе и в эклипсе, есть много полезных средств для работы с кодом, выше я называл некоторые. В предыдущем треде тоже кое-что можно почитать.
235 338278
>>338273
что-то конкретики нет.
236 338318
>>338249

>Поддержка CubeMX


CubeMX генерирует Makefile,
так что vi и arm-none-eabi- и openocd достаточно.
Сам понимаешь что выигрывает в выборе из vi и eclipse параши.
237 338356
>>338318

>так что vi и arm-none-eabi- и openocd достаточно.


>Сам понимаешь что выигрывает в выборе из vi и eclipse параши.


что?
238 338359
239 338366
>>338359

>emacs


нет vim
240 338374
>>338318

>vi


Это же текстовый редактор, а не IDE. Вот как в этом вашем vim переименовать переменную или функцию везде, где она использовалась?

>>338359
А это уже для любителей грызть мозоли, про это все знают.
241 338378
>>338374
:s/old_name/new_name/g
242 338379
В емахе ассемблер из каропки, например для 8-бит пиков
243 338385
>>338378
Не, это не серьезно. Это заменит все вхождения без разбору, функция это или переменная или вообще часть имени. Еще и в одном файле только.

>>338379
Ассемблер я и на симейке смогу сделать, только без макросов наверное.
244 338434
Антуаны, ничего личного.
Открываю в AtollicSTUDIO проект из CubeMX - пишу HAL_GPIO_WritePin(
Ну и где тут посмотреть какие параметры у функции?
Почему в процессе написания не предлагалось вариантов названия вызываемой функцию?
В Keil это работает из коробки.
245 338444
>>338434
В обыкновенном эклипсе все работает. По умолчанию подсказки появляются по нажатию ctrl + пробел (в кейле точно такое же сочетание клавиш), но можно в настройках включить автоматическое появление. Возможно в AtollicSTUDIO автодополнение по умолчанию отключено, для уменьшения занимаемой памяти, чтобы на древних компах не тормозило.
Хотя, по сравнению с visual studio и даже qt creator, автодополнение в эклипсе работает плоховато.
246 338452
>>338444

>По умолчанию подсказки появляются по нажатию ctrl + пробел


О, прикольно!

>в кейле точно такое же сочетание клавиш


В Кейле это сразу включено

>автодополнение в эклипсе работает плоховато


А что работает хорошо?
247 338455
>>338452
Для хорошего познания необходимо программировать на чистом железе и без всякого автодополнения и в редакторах по типу vi emacs joe
248 338459
>>338452

>В Кейле это сразу включено


Что-то не похоже. По крайней мере в версии 5.11 этого нет. Возможно у тебя репак от Васи с торрентов, в котором настройки по умолчанию изменены.

>А что работает хорошо?


Выше по треду перечислили некоторые навороченные современные IDE:

>visual studio и даже qt creator


>clion



>>338455
Это ты вообще о чем? Про редакторы так вообще бред. Заучивание горячих клавиш этих уродцев никак не поможет изучит язык Си. А еще, судя по тебе, использование этих текстовых редакторов плохо сказывается на способности понимать русский язык.
249 338460
>>338459

>Это ты вообще о чем


Не используй кубик, программируй baremetal

>изучит язык Си


только ассемблер
250 338461
>>338460

>>изучит язык Си


>изучит язык


>изучит

251 338462
>>338459

>По крайней мере в версии 5.11 этого нет.


В 5.23 и 5.24а это из коробки.
252 338466
А как в Atollic TrueSTUDIO прошивку загрузить в МК?
Долблюсь в глаза и не могу понять.
253 338509
Аноны, а есть ли какой-нибудь статический профайлер под серию Cortex-M? Очень нравится вылизывать критические места в прошивках, но смотреть время выполнения на логическом анализаторе путем дерганья ног немного задалбывает и не совсем точное, потому что мой умеет всего 24 Мс/с. Нашел oprofile, но он нифига не статический, хочется скормить функцию и получить количество тактов в зависимости от значений переменных и ветвлений и лучший/худший вариант. Если ничего подобного нет и кому-то еще он кажется нужным, то можно попробовать пойти на магистра с такой темой диплома, но анализ языка меня немного пугает.
mem.png59 Кб, 598x442
254 338516
>>338509
Я конечно допускаю то что могу что-то не понимать, но по моему ты делаешь ерунду.

>путем дерганья ног


Чем это будет отличаться от использования таймера? У тебя наверняка не все таймеры заняты. Запуск и остановка таймера это точно такая же запись в регистры, как и дрыганье ногой.

>потому что мой умеет всего 24 Мс/с.


Столь малые задержки это всего лишь несколько инструкций. В таком случае, по моему, целесообразнее смотреть ассемблер.

>в зависимости от значений переменных и ветвлений и лучший/худший вариант.


Возможно ты это и так знаешь, но на всякий случай скажу. Видишь как организована память? Так вот для разных микроконтроллеров с одним ядром это может немного отличаться. По крайней мере быстродействие и разрядность флеша может отличаться. В тех же STM32 (и почти во всех других кортексах) есть буфер предварительной выборки из флеша, который необходимо включать при большой тактовой частоте, да еще и настраивать количество тактов задержки при доступе к флешке. Размер этого буфера и возможно логика его работы отличается в разных микроконтроллерах, даже если у них одинаковое ядро. А еще программу можно запихнуть в ОЗУ. А еще ОЗУ может быть однопортовое и двухпортовое.

>анализ языка меня немного пугает.


Не пойму где тут анализ языка. Тут скорее работа с ELF и эмулятор микроконтроллера. Вроде как тайминги ядра все описаны в Technical Reference Manual на arm.com. Вот только мне кажется что там не полностью все описано. Например, мне не понятно как изменятся тайминги при выполнении кода из ОЗУ, когда все взаимодействие с памятью будет осуществляться через одну шину. Хотя, возможно, я просто невнимательно читал документацию.
255 338573
>>338516
Да, а я думал, что уже что-то понимаю в микроконтроллерах. Даже книжку по M0 прочитал наполовину и все равно есть области, в которых не шарю совсем.

>Чем это будет отличаться от использования таймера?


Таймер даже лучше. Спасибо, с ардуино осталась привычка ногодрыгом все мерить. Но все равно остается заливка программы, хотя тут можно написать вывод значений по UART или SWO и получить обычный анализатор, который будет показывать, сколько раз какое число тактов исполнялось, сейчас имеется один для анализа дампов с логического анализатора.

>В таком случае, по моему, целесообразнее смотреть ассемблер.


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

Видишь как организована память?
Да, ее работу я еще не разбирал. Хочешь сказать, что в некоторых случаях могут быть задержки на получение инструкций? Это можно настроить, думаю, они ж фиксированные. Я с STM32F0 и F4 работал, там все без ожидания работает, из ОЗУ запускать программу не пробовал.

>Не пойму где тут анализ языка.


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

>Например, мне не понятно как изменятся тайминги при выполнении кода из ОЗУ


Особый случай, его отдельно разбирать надо будет. Зачем это делать, кстати, кроме экономии ресурса памяти или случая, когда она медленная?
256 338575
>>338573

>Я с STM32F0 и F4 работал, там все без ожидания работает


>STM32F0


RM0360 страница 58

>Bit 4 PRFTBE: Prefetch buffer enable


> и т.д.


>Bits 2:0 LATENCY[2:0]: Latency


>hese bits represent the ratio of the SYSCLK (system clock) period to the Flash access time.


>000: Zero wait state, if SYSCLK ≤ 24 MHz


>001: One wait state, if 24 MHz < SYSCLK ≤ 48 MHz


Все там есть. И задержка есть и буфер. За тебя это наверное HAL с кубом настраивали.
Для STM32F4 сам сможешь найти.

Мой прогноз - с таким подходом ничего адекватного у тебя не получится.

>просто считать количество тактов на инструкцию.


Ты хотя бы про конвейер в процессорах слышал? Так в кортексах он тоже есть.
257 338597
>>338575

>RM0360 страница 58


Я только про периферию читал. Нет, частота 48МГц, а память без задержек ебашит и все работает, странно как-то. Может потому что напряжение питания 3.3 вольта, лол.
А с задержкой совсем грустно, без нее прерывание 12.7мкс занимает, с ней и PRFTBE — 14.2, без PRFTBE — 19.2.

>HAL с кубом


Фу-фу, только CMSIS и работа с регистрами, только хардкор. Думаешь,если бы я использовал HAL, мне бы было дело до пары процентов во времени исполнения?

>с таким подходом ничего адекватного у тебя не получится.


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

>Ты хотя бы про конвейер в процессорах слышал?


Да, и про архитектуру слышал, и микрокод писал. Из-за него осуществленное ветвление 3 такта занимает вместо одного, судя по всему.
258 338606
Посоны, я как-то заблокировал свою STM32VLDiscovery - не видится программатором, но при включении лампочками моргает как положено по программе.
Пытаюсь её перепрошить через ST-Link v2 c зажатым reset'ом - не прокатывает. Программатор чип не видит.
Помогите, а?
259 338613
>>338597

>Может потому что напряжение питания 3.3 вольта


А также комнатная температура и просто повезло.

>Фу-фу, только CMSIS и работа с регистрами, только хардкор.


Ну и зря. Хотя бы настройку периферии можно было через HAL или LL делать. Какая разница сколько времени после включения питания будет настраиваться периферия? Ну займет оно у тебя чуть больше памяти, какая разница, все равно памяти обычно много. Ты вот не пользовался и как минимум одну ошибку сделал.

>мне бы было дело до пары процентов во времени исполнения?


Вот это странно, что тебе есть дело до этого. На практике, за редкими исключениями, оптимизация имеет смысл только для снижения потребляемой мощности. Либо подобную оптимизацию используют для экономии пары копеек на микроконтроллере, но это уже обычно не про кортексы.
Да хоть ты в три раза по быстродействию соптимизируешь, все равно приличный DSP/ПЛИС не заменишь кортексом.

>>338606
Тебе нужно включить бутлоадер.
260 338617
>>338613

>Тебе нужно включить бутлоадер.


Я на boot0 кидал 3.3в - ничего не изменилось.
Ну или можешь подробнее разжевать?
261 338621
Как сделать чтобы кеил начинал загружать прошивку не с начального адреса, а с другого сектора? Т.е. у меня на f4 первый сектор всего 16кб и я его хочу использовать для сохранения переменных как в eeprom. А вместо этого я пишу в последний сектор размером 128кб, что как бы довольно большой объем и мне столько не нужно
262 338681
>>338617
Там кроме BOOT0 есть BOOT1. Нужно убедиться что на BOOT1 подается 0, например резистором к земле притянут.

>>338621

>f4


Так там в начале лежит таблица векторов прерываний. Тебе тогда придется после каждого стирания сектора их восстанавливать.
А так все возможно. Потребуется изменить скрипт линкера и startup.
263 338704
>>338606
А в ST-link utility определяется? Может, в логах будет проблему видно. У меня на прошивке выше 27 не подключается плата, если подать на нее 5 вольт со встроенного источника, с внешним или 3.3 все работает. На 27 версии работает, но с 28 откатиться на более старые не получается.

>>338613

>А также комнатная температура и просто повезло.


Ну значит так и оставлю. Надо тест написать, может, ошибки проскакивают, но крайне редко.

>Хотя бы настройку периферии можно было через HAL или LL делать.


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

>Ты вот не пользовался и как минимум одну ошибку сделал.


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

>Вот это странно, что тебе есть дело до этого. На практике, за редкими исключениями, оптимизация имеет смысл только для снижения потребляемой мощности.


А для увеличения производительности? У меня сейчас в прерывании по таймеру ШИМ 32-канальный считается, и чем оно меньше времени занимает, тем выше можно сделать частоту. Я только в случаях, когда производительность затрагивается, это и делаю.

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


Кто-то еще делает чипы с объемом памяти, не кратным двум?

>все равно приличный DSP/ПЛИС не заменишь кортексом.


Эх, хотелось бы мне получить задачу, где их не заменишь. Пока пилю свои идеи, в синтезаторе надо было определять частоту главной гармоники сигнала, посоветовали автокорреляцию. Было там 4к сэмплов, сначала делал ее через БПФ, но особой точности не было. Потом помаленьку пришел к нахождению максимума на графике по количеству логарифма от размера выборки точек с увеличивающейся точностью, в начале из сигнала берется каждый 100 сэмпл, потом 64, потом 32 и до одного. Стало возможно использовать вычисление обычным методом за 1мс, быстрее, чем БПФ, и точнее. А хотел сделать на ПЛИС параллельное умножение сначала, но коммуникация между ней и процессором все плюсы съедала, потому что АЦП встроенный. Можно, конечно, сдетлать внешний АЦП и все расчеты в ПЛИС засунуть, но зачем, задержка и так не ощущается. Хотя я SIMD-инструкцию для умножения и сложения использовал, ARM их к DSP относит.
263 338704
>>338606
А в ST-link utility определяется? Может, в логах будет проблему видно. У меня на прошивке выше 27 не подключается плата, если подать на нее 5 вольт со встроенного источника, с внешним или 3.3 все работает. На 27 версии работает, но с 28 откатиться на более старые не получается.

>>338613

>А также комнатная температура и просто повезло.


Ну значит так и оставлю. Надо тест написать, может, ошибки проскакивают, но крайне редко.

>Хотя бы настройку периферии можно было через HAL или LL делать.


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

>Ты вот не пользовался и как минимум одну ошибку сделал.


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

>Вот это странно, что тебе есть дело до этого. На практике, за редкими исключениями, оптимизация имеет смысл только для снижения потребляемой мощности.


А для увеличения производительности? У меня сейчас в прерывании по таймеру ШИМ 32-канальный считается, и чем оно меньше времени занимает, тем выше можно сделать частоту. Я только в случаях, когда производительность затрагивается, это и делаю.

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


Кто-то еще делает чипы с объемом памяти, не кратным двум?

>все равно приличный DSP/ПЛИС не заменишь кортексом.


Эх, хотелось бы мне получить задачу, где их не заменишь. Пока пилю свои идеи, в синтезаторе надо было определять частоту главной гармоники сигнала, посоветовали автокорреляцию. Было там 4к сэмплов, сначала делал ее через БПФ, но особой точности не было. Потом помаленьку пришел к нахождению максимума на графике по количеству логарифма от размера выборки точек с увеличивающейся точностью, в начале из сигнала берется каждый 100 сэмпл, потом 64, потом 32 и до одного. Стало возможно использовать вычисление обычным методом за 1мс, быстрее, чем БПФ, и точнее. А хотел сделать на ПЛИС параллельное умножение сначала, но коммуникация между ней и процессором все плюсы съедала, потому что АЦП встроенный. Можно, конечно, сдетлать внешний АЦП и все расчеты в ПЛИС засунуть, но зачем, задержка и так не ощущается. Хотя я SIMD-инструкцию для умножения и сложения использовал, ARM их к DSP относит.
264 338725
>>338704

>Ну значит так и оставлю. Надо тест написать, может, ошибки проскакивают, но крайне редко.


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

>У меня сейчас в прерывании по таймеру ШИМ 32-канальный считается, и чем оно меньше времени занимает, тем выше можно сделать частоту.


Не убедительно. Можно использовать пересылку ПДП в GPIO, это даст минимум на порядок большую частоту. Можно взять микросхему вроде TLC5947. Можно взять CPLD.
265 338728
>>338725

>Можно взять CPLD.


Тут я немного ошибся. CPLD такого объема дороже FPGA. 10M02 в самый раз будет.
266 338739
>>337805

>Под него линкер-скрипты, меморимапы и фьюзы-хуюзы руками на башоперле же писать?


На Яве, блеать: https://gnu-mcu-eclipse.github.io/templates/stm32f/
267 338748
Поясните за arm cordio ble stack - его можно использовать только на определенных девайсах, или это обертка, которую хоть на cc2640, хоть на nrf5x можно ставить поверх их родных softdevice или какеготам?
268 338784
>>338725

>Оно из-за этого в любой момент может перестать работать.


Пока проблем не было, надо тестировать. Может, работа на такой частоте в узком диапазоне условий доступна и про нее не написали. Я контроллер для игры делаю, он будет работать в помещениях с температурой от +15 до +30 градусов.

>Не убедительно.


Забыл сказать, что использую STM32F030 и делаю упор на цену. Готовое устройство будет около 400 баксов стоить(но 220 из них приходится на фейдеры с мотором), в нем 9 модулей, текущая комбинация с четырьмя 595 регистрами стоит $1.5 на LSCS, если они от ST, и $1.3, если взять подешевле.

>Можно использовать пересылку ПДП в GPIO, это даст минимум на порядок большую частоту.


Это время расчетов, регистры по SPI управляются. Есть массив из 32 байт со значениями скважности, из него считаются состояния выводов. Написано на ассемблере, одна итерация цикла 13 тактов занимает, быстрее пока не придумал.

>TLC5947


Нелохо, но цена великовата. Плюс таких 2 понадобится, можно взять TC62D723FNG, но она $1.8 стоит, уже $4.2 получается на модуль.

>10M02


$6, мне на ней всю логику надо будет писать. Слишком незначительная задача, чтобы тащить FPGA, светодиодами управлять да мотором, но для него ШИМ трехбитная и частота в 32 раза выше. Конечно, если бы это всего одна плата была, то можно делать, что хочешь, но цена и так слишком большая, поэтому надо экономить. Неограниченный по бюджету у меня экран на 0402 светодиодах на AS1130B, там и WL-CSP будет, и куча сенсоров.

>>338739
Мне Кейл своей простотой нравится и тем, что 150 мегабайт оперативки занимает, в 2 раза меньше дискорда и остальных поделий на электроне. После него эклипс слишком навороченный и тяжелый в плане интерфейса. Форматирования только не хватает.
269 338791
Kek
270 338808
>>338681

>Там кроме BOOT0 есть BOOT1. Нужно убедиться что на BOOT1 подается 0, например резистором к земле притянут.


Спасибо, бро!
Всё получилось.
271 351599
Здравствуйте , радачилы, есть cypress psoc 5lp. хочу на блоках UDB (аналог плисы) сделать частотомер. два раза создавал тред, но упрямый бот закрывает его и отправляет сюда. Но может тут помогут, хотя не знаю как ARM и ПЛИСовые блоки могут быть связаны. Короче есть проблема, за первую секунду счётчик считает странное число, которое меняется примерно на 2млн. В крейторе завожу частоту в 12 МГц и секунду делаю тоже с 12 МГц.
272 351730
>>338704

>инициализация за полчаса


Пойди-ка F7/H7 проинициализируй за полчаса.
273 351736
>>351730

>F7/H7


Там и с F4 не все просто.
274 351743
>>351736
Согласен. Стартанул 103 на голом цмсис и почувствовал себя отцом, думаю ща и для 407 бойлерплэйт сварганю. Запутался в этой куче плл, зашёл в куб и за 3 минуты сделал инициализацию с помощью лл. Ебал я такой пердолинг за идею.
275 357348
Реквистирую Литературу по микроконтроллерам сам ньюфаг и мои знания ограничаваются знанием электроники на уровне триггеров регистров на стандартной 155 серии ТТЛ
277 357380
>>357377

тонну нефти
278 359573
>>357348
http://www.allitebooks.com/beginning-stm32/

На scanlibs.com ещё набери в поиске stm32 или arm.
Там реально дофига по армам всего.
image.png149 Кб, 638x451
279 360958
Перепощу сюда.
Котаны, подскажите, что делаю не так.
Пытаюсь сделать задержку в "наносекундах" через DWT, но вместо результата получаю какую-то хуиту. На малых числах получаю неадекватно большие задержки, на больших получаю разницу раза в 2 (при том наоборот в меньшую сторону).
https://godbolt.org/z/AXRGxD
Видимо, я проебался где-то в своей функции, но что я сделал не так - понять не могу.
Со стандартного вида DWT-ms таймером всё работает нормально.
280 360962
>>360958

>Zalupa999(120010001000*5);


У тебя тут переполнение uint32_t. Дальше лень смотреть, может позже попробую.
281 360990
>>360962
Хмм, насчет переполнения справедливо, посчитал - оказывается тормознул.
Но оно и до переполнения работает мальца через жопу. Странно.
282 371803
>>314976 (OP)
АНОНЫ Я когда то давно вкатывался в STM32, у меня даже был модуль, там вроде была F100 какая-то, но у нее уже EOL тогда наступал.
Мне тогда ARM не очень под задачи и умения был, и я остался на AVR сидеть, ща понял что сильно отстал от моды и надо наверстывать.

Какой ARM камень себе под макетку взять (не обязательно STM), что бы вот прям самый современенный и максимально несущий все новомодные фичи?

Я понимаю, что - мудак берешь параметрический поиск и выбираешь).
Но мб кто че конкретное посоветует.
Планирую с ним изучать из списка: CAN, Ethernet, встроенный USB, базовый радиопередатчик, RFID, WiFi, мб че еще предложите.
Задрался я сидеть на компорта и всяких ебучих RS-xxx.
283 371804
>>371803
/ESP32
284 371808
>>371804
А к нему житаг за приемлемую для рядовой пидорахи цену есть?
285 371809
>>371808
>>371804
>>371803

Я вот смотрю в сторону STM32F107 и ATSAME70.
На первый житаг на помойке можно найти, на 2ой - один хуй хотел себе атмель-айс купить.
286 371811
>>371809
уебки, как jtag-адаптер может быть разным для разного говна?
287 371812
>>371811
Лол, наизейше, по взмаху руки менеджера.
На AVR вон взяли и ебанули пачку своих жтагов с выходом новой IDE.
Какую еще проприетарщину натворили мудаки один хуй знает, сейчас бы гнать месяц топовый камень, разхуярить плату и узнать, что для покупки жтага надо продать автомобиль которого нет.

У меня есть ST-Link и G-Link Segger(клон), если один из них берет ESP32 то возьму ее скорее всего.
изображение.png1 Мб, 1300x951
288 372993
Антон, какие книги можешь посоветовать по семейству ядер ARM cortex?
289 373013
>>372993
Официальные доки и книжки Джозефа Ю.
290 373026
>>371812
А в чем отличие ESP32 и STM32? Так понимаю ESP32 китайское дерьмо в отличие от германского STM32.
291 373093
>>373026
Да всего лишь наличие в дерьме вайфая, блютуса и второго ядра проца.
292 377217
Онанимасы, спасайте! Малинка унижает анона в собственной сычевальне! Читаю мануал по Пи Зеро W....
Захуярьте загрузочную флешку из образа и Етчера
Положите в корень два файла: ssh и бла-бла
Тут я охуеваю и не могу зайти в файловую систему флешки!! Винда требует ее отформатировать!! Неужели придется ставить красноглазый Линух?!
293 377218
>>377217
Спермопроблемы спермораба.
14366238784900.jpg41 Кб, 314x604
294 377228
>>377218

>Спермопроблемы спермораба.


Ебанные красноглазые пидорасы!! Как же я вас ненавижу!! Всё не как у людей!!
gbpljc.JPG132 Кб, 1319x796
295 377236
>>377228
Простейший коннект к малине превращается в хитровыебанные пасы с созданием файлов и бросанием их в корень через виртуалку с Убунтой. Нахуй! Просто нахуй эту ебучую поделку!!1
296 377246
>>377236
Во-первых, в DIY есть тред чисто по Малинам.
Во-вторых, я нихуя не понимаю, в чем твоя проблема, сириусли. У меня из под винды нормально всё запустилось без особых плясок. Win 8.1. Не помню, чтобы бегал к кому-то за линуксами хоть раз. Ну а после первоначальной установки у меня вообще всё прекрасно работает и коннектится. Ни разу с того момента не подключал к ней USB клаву.
В-третьих, я так и не понял, что означает твой пикрил. Это какой-то юмор?
297 377261
>>377228
Зачем он сжал лягушку? Мне грустно от этой картинки.
298 377277
>>377246

>в DIY есть тред чисто по Малинам.


Ну охуеть! Зато страшно далекий от радачества тред про 3д-принторы висит на глагне
299 377286
>>377261
Жизнь - боль. Deal with it.
300 377325
>>377277
Каким образом малинка относится к АРМ? Чисто софт-проблемы, в /s или в /b
301 377326
Поделитесь куском кода для горизонтального меню на экране с тремя и более пунктами подменю.
302 377375
>>377325

>Каким образом малинка относится к АРМ?


Прямым. Или ты думаешь, что у нее х86 камень?
303 377376
>>377325

>или в /b


Видимо самый адекватный раздел остался на борде.
304 377514
>>314976 (OP)
На каких языках пишут 3000кк/сек-погроммисты для Малинки?
305 377515
>>377514
На малинке на питоне ебашут
306 377516
>>377228
Ты не забыл что там на твоей малинке крутится? Извинись.
307 377517
>>377515

>на питоне ебашут


А на Си можно? А то неохота еще одним ЯП свою тупую башку забивать.
пердолинг.JPG89 Кб, 723x433
308 377540
>>314976 (OP)
4+ часа компилинга и ХУЯК!! Почему нельзя сделать установочный пакет откомпиленного этого говна, а не пердолить судками эту ардуину на стероидах?
309 377557
>>377540
в логи конфига не судьба было глянуть
310 377713
1
311 378058
Что можешь сказать о RISK V
312 378460
>>315349
Вкатываюсь по тихому в cmsis, потому что хал и прочие библиотеки для пидоров или хуже того, ардуинщиков, а так с авр много общего в принципе, ну разве что надо помнить про тактирование всего
313 380604
>>314976 (OP)
Как реализовать это на примере асмр?
314 380699
>>314976 (OP)
Ну короче, вопрос такой. На чем программировать stm32? Можно туда вхуярить жаву? Или есть менее больные методы?
stm32f103c8t6 blue pill
315 380700
>>380699
C/C++/Rust. 20kb RAM же. Было бы 40kb+, можно было бы запустить micropython или javascript через espruino, но это блажь и ересь.
316 380701
>>380700
А можно джаву? Я нагуглил Java ME и вот это https://www.youtube.com/watch?v=VOw069JyVks
Но гайдов, как поставить я не понял.
317 380704
>>380701
Но зачем это делать? Допустим поставишь, а дальше что? Как будешь взаимодействовать с периферией?
318 380705
>>380704

> Как будешь взаимодействовать с периферией?


Но ведь джаву делали для того, чтобы программировать чайники и холодильники. Должен быть по идее способ
319 380707
>>380705
Разумеется способ есть, вопрос только в том, сколько тебе для этого придется писать кода.
В качестве примера можно взять мигалку светодиодом. Для того чтобы включить или выключить светодиод, нужно записать в память определенное число по определенному адресу. Естественно что тебе придется этот адрес взять из документации, забить в константу, которую потом использовать в коде. Но до включения и выключения светодиода порт нужно настроить, для чего опять придется брать и вбивать из документации адреса, битовые маски и прочее. Но для Си это уже сделано. Сделаны в том числе несколько более высокоуровневые библиотеки. А для джавы тебе придется почти все это писать самостоятельно. Конечно, для какого-то микроконтроллера кто-то все это мог частично сделать, но что ты будешь делать, если потребуется использовать другой микроконтроллер?
Помимо этого код на джаве без JIT будет очень медленно работать. Ну и зачем джава нужна на микроконтроллерах?
320 380743
>>378460
Да это так, но зачем
321 380761
Моргание диодом на STM32F103C8T6 aka Blue Pill
Один вариант на CMSIS другой с использование HAL.
Херли такая большая разница?
322 380762
>>380761
Все просто.
CMSIS - меня ничего не ебет, я сказал туда (явный адрес регистра) запихнуть это дерьмо и оно будет запихнуто, даже если недопустимая комбинация или адрес.
HAL - вот тебе говно - название модуля и его настройки. Меня не ебет где и куда оно попадет - это ты сам решай, проверяй на корректность и недопустимость.
С ходу разница только в наличии проверок и соответственно куче говнокода проверки имени периферии и допустимости значений.
323 380763
>>380762
Что использую ровные пацаны при разработке устройств?
Получается недаром HAL называют калом.
Стоит ли вообще с ним связываться?
324 380767
>>380763
Мой ответ тут >>352800 . На пикрил обрати внимание.
Ждем независимые мнения. И да - мне похуй. Тяжелая периферия - кубик+HAL, все остальное - CMSIS и ебись ты HAL/LL конем.
PS Тебя скорее всего пнут под сральник в соседнюю нить >>339005 (OP)
325 380768
>>380763
В начале можно и на нем. Кому-то хватает, кто-то потом переходить на другое, а кто-то сам биты ставит в регистры.
326 380769
>>352800
Это не страшные заклинания, новичку они просто неведомы. Старое PORTC |= или PORTC &= из АВРок оче на это похоже, но пока всё разберешь...
327 380774
>>380761
Не знаю как сделано в этом вашем HAL, но в подобных библиотеках как правило используются ассерты. Ассерты это такие макросы, которые при несовпадении условия вызывают некую функцию, в кототрую передают номер строки с ошибкой, имя файла и прочее. Проверь, включены ли у тебя ассерты и если включены, то попробуй выключить.
328 380819
>>380774
Из коробки

/ ########################## Assert Selection ############################## /
/
@brief Uncomment the line below to expanse the "assert_param" macro in the
HAL drivers code
/
/
#define USE_FULL_ASSERT 1U*/

Если определить USE_FULL_ASSERT памяти отожрет на пол шишечки больше.
329 380967
Вечный спор: CMSIS супротив SPL | HAL
330 380968
Зато в Кубе очень удобно сейчас сделано тактирование периферии. Можно задать нужную частоту на шине и Куб сам настроит все делители
331 381037
>>380968
Отрицать, что кубик великолепен могут только спецы в рунете, мол индусы говно написали не эффективно. Только кому кроме их самих их мнение интересно.
332 381050
>>380968
Неосилятор плес
333 381053
>>381050
Что это вообще значит?
334 381064
>>381053
Что ты не умеешь в регистры
335 381069
>>381064
Я этого говна на AVR наелся, больше не хочу.
336 381073
Для STM32 куб избавляет от чтения документации?
337 381078
>>381069
>>381073
Ардуинщики, плес. Как вы плату собрались проектировать без чтения документации? Любой hal упрощает работу с железом, а не отменяет ее
338 381116
>>381078
с другой стороны, работа с железом не предполагает обязательного использования регистров.
на уровне HAL я могу использовать, допустим, I2C на уровне функционального блока МК без записи и чтения регистров. HAL это сделает за меня.
339 381124
>>381116
Как можно осилить документацию на микроконтроллер (в требуемом объеме) и не смочь после этого запрограммировать что-то простое вроде таймера или I2C, с одним только CMSIS? Если все-таки нельзя, то какой может быть спор >>380967 ?
340 381125
>>381124
вопрос не в могу/не могу сделать, а в том, что спускаться до битов и регистров для выполнения задачи вообще нахер не надо.
341 381126
Я могу и руками передачи в авто переключать, и трамблер повернуть под октановое число бензина, и ногой прерывисто нажимать на тормоз типа АБС, но, блядь, нахуя такие заморочки в 21 веке???
342 381132
>>381125
Так значит, если есть куб, то документацию читать не нужно? Ну, разве что на HAL документацию почитать, а на микроконтроллер нет смысла.
343 381134
>>381132
А про какую именно документацию вы сейчас говорите?
У ST её много даже для 1 МК.
344 381151
>>381134
Какая разница? Ты бы еще спросил какой параграф, а то их там еще больше. Ну если про ST, то наверное datasheet, reference manual, errata. Без чего тут можно обойтись? Разве что только добавить ко всему этому "Description of STM32Fx HAL and LL drivers".
345 381175
>>381151
Я хз с чего ты взял, что документацию читать не надо.
346 381183
>>381073
Ты по ходу вообще не понимаешь как устроена индустрия embedded development.

Будучи разработчиком встраиваемых систем ты постоянно будешь сталкиваться с документацией, на МК, на кодеки, на ОУ, да на все, блин, привыкай читать ее, привыкай читать ее очень внимательно, привыкай читать ее внимательнее всех остальных.

Это далеко не прогерство десктопного ПО. Тут недостаточно уметь тыкать пальцами по клавиатуре.
347 381186
>>380763
Если хочешь стать реальным инженером, то надо быть любознательным, очень. Это одно из самых главных качеств инженера и исследователя, ему все хочется понять, докопаться до сути.
Любознательный инженер все разбирает до винтика, так что он выберет CMSIS.
А если не хочется лезть под капот, то останешься обычным кустарем, который клепает всякое говно, используя чужие наработки, и не понимая как они работают.
348 381193
>>381175
Так это не я взял, это следует из утверждения о том, что касаться CMSIS и LL (SPL) не нужно.
349 381199
>>381183
А ты по ходу не понимаешь намеков.
350 381200
>>381199
Со всеми бывает
351 381236
>>381186
А водителю автомобиля обязательно быть квалифицированным автослесарем?
352 381239
>>381236
А тут, сравнение не корректное.
Тут как раз ты автослесарь, а не водитель, но каждый свой путь выбирает)
353 381240
>>381239
Ты водитель, если используешь HAL и автослесарь, если использует CMSIS
Но нет ничего страшного в комбинации этих умений.
С другой стороны, если нужно просто доехать из п. А в п. Б достаточно быть просто водителем.
354 381242
>>381236
Неправильные аналогии. Еще раз повторю: HAL отменяет чтение документации?
Допустим возьмем тупой код мигалки. Естественно, что для начала нужно настроить порты. Как ты будешь настраивать порт? Наверное заполнишь структуру GPIO_InitTypeDef и вызовешь HAL_GPIO_Init. Но что ты будешь писать в структуру? Абсолютно то же самое что и в регистр. А какие значения будешь туда писать? Вот тут придется открыть документацию. Так какая разница, в данном примере, что использовать? Поэтому невозможно нормально уметь в HAL и совсем не уметь при этом в CMSIS или LL.
355 381248
>>381242
Больно сложно.
Настрою периферию Кубом и буду HAL_Write_Pin менять состояние пина.
Зачем мне в этой задаче про регистры думать?
356 381249
>>381248

>HAL_Write_Pin


HAL_GPIO_WritePin
быстрофикс
357 381250
Можно сосредоточиться на задачах более высокого уровня, не спускаясь до регистров и битов.
В 99% случаев это возможно, ну и есть конечно, особо изъёбистые случае, когда приходится спускаться до битов и регистров.
358 381253
>>381248

>Больно сложно.


Сложно настраивать GPIO через HAL? Всего то разницы между этим и кубом, что не натыкиваешь то же самое мышкой, а пишешь текст. Если это сложно, то как ты "задачи более высокого уровня" собрался решать?

>Настрою периферию Кубом


Ну возьмешь ты куб, что поменяется то? Не нужно будет читать документацию в части GPIO? Ты в кубе те же самые биты натыкиваешь, только мышкой. Разве только что куб тебе на явные ошибки укажет. А если документацию прочтешь, то какая разница как натыкивать эти биты?
359 381254
>>381253

>Сложно настраивать GPIO через HAL?


Не сложно, а не нужно.
Понимаешь разницу*
360 381255
>>381253
Принципиально нет, но да
361 381257
>>381255
Можно купить готовый модуль, например, MPU6050 в Китае за 40 руб и работать с ним спокойно. А можно ПП проектировать, микруху с обвязкой закупать, всё это собирать.
И тоже будет работать. Но зачем?
Вот всё тоже самое.
362 381259
>>381254
Нет, не понимаю. Какая разница, мышкой натыкаешь или с клавиатуры наберешь то же самое? Сэкономишь этим время, натыкивая в кубе? Явно нет. Меньше всего нужно будет изучать? Тоже нет.
363 381264
>>381259

>Какая разница


А если нет разницы, то почему бы и не мышкой тыкать?
364 381266
>>381259
В Кубе МК сконфигурируется уодбней, быстрей и безошибочней, чем руками.
365 381269
>>381257
Всё так
366 381270
>>381266
Гуру должен всё ручками и желательно на ассемблере. Иначе это не гуру, а банальный ардуиншик.
367 381272
>>381270
а тексты набирать используя vi
368 381281
Короче, кому нравится ХАЛ и прочий кал можете дальше продолжать его есть, для поделок он сойдёт. А тем, кто серьезно занимается проектированием электроники ничего не надо объяснять.
369 381285
>>381281

> А тем, кто серьезно занимается проектированием электроники ничего не надо объяснять.


Аргументов "за" у вас нет, вот и объяснить не можете. Остаётся только щёки надувать :-)
370 381287
>>381285
Какие аргументы за чтение документации, ты хотел написать? Ведь прочитав документацию, сразу поймешь как настраивать то же GPIO хоть через HAL_GPIO_Init, хоть через CMSIS. А не прочитав документацию, и в кубе неправильно натыкаешь.
371 381309
>>381287
Речь вовсе не про чтение документации идёт, а про использование CMSIS и HAL
sage 372 381312
Может кто-то пояснить чем этот тред отличается от треда по СТМ?
373 381315
>>381312
этого никто не знаю. наслаждайся.
374 381390
Приведите пример необходимости опускаться до регистров и битов.
375 381392
>>381390

>Приведите пример необходимости


Ну, например на stm8s003, мне пришлось опуститься до регистров, дабы запихнуть прошивку в имеющийся объем флеша. С stdperiphlib-ой не удавалось
376 381393
>>381392
Нужен пример из мира 32 бит
377 381395
>>381390
Но выше речь была не о необходимости непосредственного использования регистров. И даже пример был с GPIO. Допустим откроешь в документации блок-схему какой-то части периферии микроконтроллера, а там указаны названия битовых полей, разрядности каких-нибудь предделителей и прочее. И вот тебе уже биты и регистры. А если брать LL или SPL, то это почти те же самые биты, только не раскиданы по регистрам, а собраны в сишные структуры, плюс чуточку логики и ассертов. Если скажешь про куб (а тред, кстати, не только про STM32 по идее), то в нем будут те же самые названия битов, т.е. даже используя куб, от этих битов ты все равно не до конца абстрагируешься.
Твой вопрос можно даже переформулировать иначе: зачем на STM32 опускаться до LL, если есть HAL.
378 381452
Вопрос о компиляции/сборке. Я понимаю, что делаю я как-то немного не то, но, думаю, полезно будет знать, даже если не использую в итоге.

Предположим, есть два диапазона памяти: 0x0-0xff и 0xff00-0xffff, т.е. два 256-байтных участка, расположенных на расстоянии почти 65кб друг от друга.

Если я хочу поместить исполняемый код в обе секции, то на выходе получится 65кб бинарник с кучей нулей от 0x100 до 0xff00. Разумеется, такое мне не надо.

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

Но это вообще нормально так делать? Есть ли какой-то способ сказать objcopy, чтобы он нули эти не делал, лишь выровнял данные по какому-то размеру (чтобы не друг за ругом на хрен знает каком байте меняясь секции шли)? Ну или как-то скомпилировать так, чтобы ко всем инструкциями в добавился некий отступ, о котором линкер не будет знать? Т.е. в линкере у меня будет .uppertext{upper.o(.text)} > 0x0100, но сами инструкции/джампы идут с другим адресом, +0xff00 типа.

Конкретно юзкейс у меня с xilinx zynq7010б в нём по-дефолту 256кБ on-chip memory раскиданы на 0x0-0x3fff и 0xffff000-0xffffffff, если не поставить флаг в регистре, что можно сделать, естественно, уже лишь после запуска. Цель использовать только OCM, бутлоадер который имеет важные вещи в верхних 64кБ, затем копирует нужное приложение из флеша в нижние 192кБ памяти и передаёт управление ему, а верхние 64кБ приложение как стек/кучу использует и остатки бутлоадера уже само затрёт / проигнорит. Просто всё в 64кБ запихнуть проблематично, да и их ROM загрузчик не хочет стартовать fsbl, если .text не в 0x0 в линкере почему-то.
379 381480
>>381452
То есть ты хочешь создать один бинарник, который загрузчик потом считает из флешки в две отдельные области памяти? И секции, само собой, у тебя раздельные? А как помещаешь код в uppertext? Указываешь для функций через __attribute__ по отдельности?
Если так, то этим делом по идее должен заниматься линкер, objcopy тут не при чем. В принципе что-то подобное делается во всех микроконтроллерах, в них копируется секция data из флешки. Если я ничего не путаю, то в ld это (дублирование содержимого сегментов) делается ключевым словом "AT>".
380 381494
>>381480

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


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

>И секции, само собой, у тебя раздельные? А как помещаешь код в uppertext?


Не, в линкер скрипте:

>.sect {


> myobject.o (.text .data ...)


>} > RAM_HIGH


>.text {


> ✴︎(.text)


>} > RAM_LOW


И весь код (data, bss и прочее, если указать) из myobject.c попадёт в эту секцию. Ну, планируется так сделать, может некоторые отдельные функции всё же через атрибуты будут, если удобнее код организовать.

>делается ключевым словом "AT>".


А, блин, точно! Прям то, что надо, спасибо!

>линкер, objcopy тут не при чем


Ну я не совсем уверен был, кто именно распределяет, как данные в .bin лежат, вносит ли objcopy свой вклад (.elf-то не увеличивается в размерах)
381 382109
>>377517
Нельзя. Я запрещаю.
382 382114
>>381257

>зачем


Если ты делаешь устройство, по габаритам должное влезть в условный подрозеточник, при этом, кроме МК и его питания нужно ещё что-то релюхи там, блютуз-модуль и т.д., голый контроллер и фуллкастом плата единственное решение.
383 382165
>>382114
а если нет ограничений по габаритам, массе и нет в конечном итоге разницы - сам ли разведёшь плату под микруху с обвязкой или используешь готовый модуль?
384 382273
>>382165
Помимо этого "а если", есть еще достаточно причин.
1) Как будешь соединять эти модули? Хорошо, если все эти отладочные платы рассчитаны одна под другую, но часто это не так.
2) Требуемый модуль не существует вообще.
3) Электромагнитная совместимость.
Короче такой же тупняк как и про регистры, только еще глупее. Я еще не спрашиваю, что там можно "работать" с акселерометром.
385 384850
Сап, аноны. Где можно найти годных туториалов для введения в микроконтроллеры. На работе выдали Atmel Sam e70, а до этого я только с ардуино имел дело. Подскажите с чего лучше всего начать изучение
14937485363800.jpg94 Кб, 503x711
386 385148
>>314976 (OP)
Сап, на связи 32 лвл инженер-эмбеддер с мухосранска-миллионика(пишу прошивки + иногда развожу печатные платы в нии). Пару месяцев назад создавал тред в воркаче, где рассуждал, какое это блять дно быть в россии инженегром в 32 за зарплату 40к. И блеать, сегодня на работе одна тян из отдела увольняется, 26 лет, отработала год, до этого еще 3 года на каком-то уралбыдломаше. Сказала, что это все дно и пиздец и она будет учить кодинг. Кун ее тоже инженер(конструктор), тоже сидит после работы зубрит питон. Начала приводить примеры своих знакомых, отучившихся на инженеров, бросивших через две недели, и работающих в ДС программистами за 180к. У меня опять весь день параноидальные мысли о том, что я занимаюсь какой-то хуйней за гроши.
Как блять жить сука если ты инженер и не поехать от осознания своей донности и того что уже поздно и ты застрял в этом дерьме навсегда? Как думаете, возможно ли перекатиться из байтоёбства эмбеддед в айти?
sage 387 385154
>>385148
Думаю что такое нужно писать в каком-то более подходящем треде. Или вообще создавать новый.

>сидит после работы


Это странно, что после работы. Неужели не дают прямо на работе? Мне начальство такое вполне позволяет, когда ничего особо срочного нет.
388 385161
>>384850

>Где можно найти годных туториалов для введения в микроконтроллеры


Если в ангельский можешь, то все курсы Джона Валвано Embedded Systems - Shape The World на edX. Там, правда, не только и не столько микроконтроллеры, сколько разработка встроенных систем. Перед тем, как записываться, Си рекомендую как следует задрочить. На том же edX есть чумовая серия курсов по классическому Си.
389 385181
>>385148

> Как думаете, возможно ли перекатиться из байтоёбства эмбеддед в айти?


Да.
Кодить уже умеешь, выбери область разработки и хуярь туториалы, читай книги и смотри видосы. Часов 8-12 практики в неделю (пара вечеров и пол выходного), и через полгода-год можно ходить по собоседованиям.

Друг 37лвл пару месяцев назад вышел на первую ойти работу стажером, на прошлой неделе стал джуном, веб-фронтенд зп $400 в укродс2. Я его полтора года наставлял (успел отговорить учить плюсы и подсунул джыэс), раз в месяц-два он рассказывал об успехах, я давал советы. Ходил на бесплатные курсы от какого-то аутсорсера. Через год мидлом станет, будет $1500+ получать. Из образования - бухгалтерская шарага и технический вуз на неайтишной специальности. И 17 лет опыта работы официантом/барменом/мясником лол.

Мимотимлид не могу найти толкового джанго-питониста в Москве за 150-180тр, все хотят от 200
390 385227
>>385161
Благодарю.
391 385279
>>385227
Анон, ты бы рассказал, с каких позиций стартуешь и чего в конечном итоге достичь хочешь? Я тебе Валвано посоветовал, но он довольно продвинутый - если ты нуб, то тебе может не подойти.
392 385347
>>385279
Знание языка: околонулевой С/С++. Сейчас стараюсь нагонять пропущенное. Считаю себя полнейшим нубом.
Опыт работы с микроконтроллерами: копипаст кода в ардуино. Но понять и исправить необходимые вещи способен.
Чего хочет мой начальник хочу достичь я: понимание принципов работы микроконтроллеров, знание различных интерфейсов передачи данных(UART, SPI, I2C и прочие), таймеры, обработчики прерываний, memory mapping.
Предприятие разрабатывает системы навигации, поэтому эти микроконтроллеры будут считывать входящее положение, а потом в дело вступает "сложная" математика, необходимая для вычислений.

inb4: специально попросился в программерский отдел, чтобы меня хоть чему-нибудь научили, но сам тяготею к железу. Поэтому буду рад абсолютной любой помощи, потому что даже репетитора хуй найдёшь в ДС
393 385355
>>385347
Не знаю что за курсы советовал анон выше, но мне кажется они про то как "правильно писать код", а не про то что такое микроконтроллеры.

>UART, SPI, I2C


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

>memory mapping


Применительно к микроконтроллерам это же просто табличка, в которой указано по каким адресам что располагается. Такое можно не понять, только если не понимаешь что такое адрес.

Я бы посоветовал почитать что-нибудь общеобразовательное для студентов о том что такое процессор вообще, какие они бывают и зачем нужны.
394 385464
>>385347

>Знание языка: околонулевой С/С++. Сейчас стараюсь нагонять пропущенное. Считаю себя полнейшим нубом.


>Опыт работы с микроконтроллерами: копипаст кода в ардуино


А, ну тогда тебе лучше поардуинить немношк. Книжка Джереми Блума в помощь. Если можешь в ангельский, то поищи в ютубе канал Paul McWhorter - там дядька неторопливо рассказывает про ардуину и не только.
Наиграешься - запишись на edx на курсы по классическому Си нужно будет как Отче наш задрочить указатели и структуры, а после - на курсы к Джону Валвано, которые я тебе выше посоветовал. Там уже будут и интерфейсы, и таймеры с прерываниями, и всё остальное. Только там ARM, а не AVR.

>>385355

>Не знаю что за курсы советовал анон выше, но мне кажется они про то как "правильно писать код"


Нет, анон, ты не угадал.

>а не про то что такое микроконтроллеры.


Таки про них. Проект/задача курса - разработать портативную игровую приставку на Cortex-M4 без нихуя: без библиотек, шаблонов... А дальше начинается хардкор: чтение мануалов, таймеры, прерывания, конечные автоматы, интерфейсы и т.д. и т.п.
395 385470
>>385464
А что там задрачивать? Я понимаю задрачивать ++ их можно всю жизнь задрачивать.
А в СИ то чего?
СИ на 33% состоит из знания синтаксиса
На 33% из понимания работы железа
На 33% из понимания или хотя бы предположений, что тебе высрет компилятор.
1% это всякие изъебства, которые не очень обязательны.

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

Ты можешь идеально выдрочить все эти книжки, а потом споткнуться и разбить ебало об нарушение атомарности, там где ты не ожидал. И от этого тебя книжки не спасут, опыт, опыт и опыт.
В то же время незнания некой фишки синтаксиса лечится за 5-10 минут гуглением.
Все базовые алгоритмы давно сделаны за тебя.

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

Так что нечего там учить. Садишься и бьешься бошкой об клавиатуру пока не заработает.
Я в общем полностью не понимаю, смысл изучения основ языка по книжкам, один хуй основа выучивается сама по себе из пары статей, а все хитрые штуки ты позабудешь нахер без практики.
Другое дело читать про архитектуру и организацию процесса, но для правильного понимания, нужен опыт и не малый.
396 385478
>>385470

>А что там задрачивать?


Указатели и динамическое выделение памяти - не самые простые для начинающих темы, не все сходу въезжают. Что до структур, то сами по себе они несложные. Но когда дело доходит до приложения этой ботвы к реальным задачам типа описания состояния конечного автомата, то у ардуино-анона тоже могут возникнуть затруднения.

>а все хитрые штуки ты позабудешь нахер без практики


Именно поэтому анону и предлагается записаться на курс по разработке встроенных систем, а не по тупо программированию. Попытается создать железку, закрепит навык.
397 385511
>>385355
>>385464
Спасибо за адекватные советы. Буду развиваться в нужном направлении. Вопрос: стоит ли ставить линукс, чтобы писать код там без всяких вижуал студий и прочих готовых приблуд для понятия особенностей компиляции или можно забить и прогать в VS/Keil?
398 385550
>>385511

>Буду развиваться в нужном направлении.


Поменьше серьёзности! ;) Придумывай себе какие-нибудь придурочно-дикие задачки типа "сделать умный светильник, который будет реагировать на мяуканье кошки" или "допилить стиралку так, чтобы по окончании стирки она включала чайник" и пытайся их реализовать. При всей несерьёзности, науки придётся поесть по полной программе - там и аналоговые фронтенды, и основы обработки сигналов в случае с кошко-светильником и т.д. Hardware hacking ещё хорошая вещь для нуба - берёшь что-то готовое, разбираешь, анализируешь, допиливаешь/модифицируешь.

>Вопрос: стоит ли ставить линукс, чтобы писать код там без всяких вижуал студий и прочих готовых приблуд для понятия особенностей компиляции или можно забить и прогать в VS/Keil?


А что тебе мешает под виндой тем же gcc из командной строки компилировать, если так уж хочется хардкора?
vffgh 399 385614
fdfccv fhbffc
400 385615
>>314976 (OP)
С ужасом обнаружыл, что CMSIS вычисляет косинусо-тангенсы по таблицам.
Аноним 401 385619
>>385615
В чем проблема?
402 385629
>>385619
Он, наверное, думал, что там вычисляется сумма ряда.
403 385634
>>385550
Воу, даже не думал, что дурацкие задачи настолько полезны!
404 385652
>>385619

>В чем проблема?


А вдруг мне захочется больше знаков после запятой? Свою функцию писать?
405 385654
>>385652
Возьмешь и подключишь либу.
406 386450
>>314976 (OP)

>IAR/GCC


В чём разница, кроме того, что IAR - платный?
IAR это для надёжных систем в промышленности и медицине, заточеный под MISRA C, а GCC - это для бытовой и не требовательной автоматизации?
407 386537
>>386450
У IAR более компактный и быстрый код, в МНОГИХ случаях, по сравнению с другими компиляторами.

Все.
408 386591
>>386537
Для АРМ-а? Ты бредишь
409 386832
>>386537
здесь такая же ситуация как с виндой и опен соурсами
все опен соурс продукты поставляются с лицензией "without any warranty", а винда с гарантией, но на деле никто до сих пор не отсудил у майкрософта норм деньги за их проебы
я хз как в иаре, но я часто работаю с асм кодом от gcc -S, да там есть немного мусора в коде, не всегда логичное использование регистров, но в целом не к чему доебаться
410 386833
>>385511
писал в треде про stm32, что после долгого поиска норм иде, решил использовать текстовый эдитор, а компилить и заливать из под консоли, оч удобно
ну и да, сижу под линой
411 386861
>>385550

>"сделать умный светильник, который будет реагировать на мяуканье кошки"


Це дуже сложно. Нужен мощный процессор, не слабее малинки, для распознавания голоса.

>допилить стиралку так, чтобы по окончании стирки она включала чайник


ATiny10 или PIC10 + реле.
412 386869
>>386861

>"сделать умный светильник, который будет реагировать на мяуканье кошки"


>Це дуже сложно. Нужен мощный процессор, не слабее малинки, для распознавания голоса.


А зачем тебе интеллектуалочку заведомо слабым микроконтроллером делать? Собрал аналоговый фронтенд, чтобы можно было минимально причесать сигнал/данные, причесал, оцифровал, запихал в канплюхтер, а уже дальше канплюхтером и сложный ЦОС, и ИИ, и что хочешь делай.
413 387114
>>386537
В IAR легче следовать MISRA C, так как стандарт писался именно под IAR и компилятор IAR его поддерживает.
414 388981
>>314976 (OP)
Анон, поясни за teensy 4.0 .
Я шо, смогу на 600мгц ногами дрыгать?

Алсо, как ее купить баксов хотяб за 30 с доставкой? На али 3к, на амазоне pjrc в рашу не отправляет.
415 389025
>>388981
Открыл ради тебя документацию. И если я правильно понял, то GPIO тактируется от IPG_CLK_ROOT, максимальная частота которого 150 МГц.
Так что в полной мере не сможешь дрыгать GPIO на 600 МГц.
416 399231
Собрал жирный бинарник для дебага через st-link v2 с помощью gdb и semihosting.

Но выглядит так будто команда gdb load прошивает только код, не закидывая во флеш контроллера дебажные символы. Это так или мне показалось?

Даже не знаю как нагуглить это.
417 399376
Есть ли способы использовать какие-либо условно-бесплатные дисплеи из планшетов и смартфонов с дешёвыми stm32 MCU?

Хочу дисплей дюйма 4, но не хочу отдавать 1000 на алиэкспрессе за него.
70g9vb2eea921.jpg86 Кб, 1125x1103
418 399436
>>399231

>не закидывая во флеш контроллера дебажные символы.

419 399444
>>399376

>условно-бесплатные дисплеи из планшетов и смартфонов с дешёвыми stm32 MCU?


Используй, кто тебе запретит? Ищи даташиты, пиши либы для драйвига этой хуяты. Только у дохуя телефонов и планшетов интерфейс MIPI, который дешевые стм-ки хуй вытянут
420 399525
>>399436
Ну что не так-то?

дебажные символы - имена функций и это вот всё.
421 399531
>>399525
Дебажные символы использует дебаггер, для какой цели оно на МК?

В какой секции и каком сегменте в эльфе они находтся, какие у них аттрибуты смотрел?
422 399533
>>399531

>В какой секции и каком сегменте в эльфе они находтся, какие у них аттрибуты смотрел?



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

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

> Дебажные символы использует дебаггер



я как раз через openocd на него хожу пошагово дебажу, с ними удобнее. Но волнуюсь что оно прямо во флешку контроллера пишется.
423 399534
>>399533
Дебажные символы нужны дебаггеру для того, чтоб можно было сопоставить адрес переменной и её название в коде и аналогично с функциями. Контроллеру названия переменных до балды. Оно не заливается туда.
424 399537
>>399534

>Оно не заливается туда.


Спасибо!

Я просто про этот swd и как оно работает с железом мало знаю
425 399885
>>399537
swd это спецификация на интерфейс для отладки. Он не имеет отношения к эльфу и дебаг-символам. Так же как USB не имеет отношения к данным, которые за копируешь на флешку или жёсткий диск или ещё что.
426 399925
А если дебажные символы не льются во флеш?
427 399926
А если читать, что пишут и думать головой?
428 399927
>>399926
програма заливается и светодиод мигает, а что с дебажными структурами?
429 399929
>>399927
А ничего, дебажные данные для дебаггера
430 399930
>>399929
Естественно это знаю, что они для дебаггера. Но как их посмотреть на флеше
431 399932
>>399930
Если они для дебаггера, то ЗОЧЕМ они на флеше?
432 399933
>>399932
Спасибо вроде что-то начал понимать
433 399942
>>399933
Сильно упрощённо, дебажная информация - это вот что-то вроде такого:

адрес 124 - переменная i, 126 - j, по адресу 5122 функция main, 5230 - led_on.

у процессора есть регистры, регистры где лежат данные и регистр, который указывает на текущую инструкцию. И есть спец. регистры, которые говорят "стоять, блять".

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

твоя идея получает эту инфу, выделяет нужную строчку и ты видишь значения переменных, котрые читаются через адреса в коде.
434 403179
Сап, аноны, автор >>384850.
Я капитально сосу в изучении микроконтроллеров, поэтому подскажите, где можно найти репетитора по микроконтроллерам в ДС. inb4 искал на профи.ру, 5 челиков всего.

Памагите, пожалуйста.
435 403198
>>403179

>Я капитально сосу в изучении микроконтроллеров


Ничего, весна близко уже. Надо годичный перерыв в изучении сделать. Не надо себя так насиловать
436 403284
>>403179
Проблема в том, что ты лезешь в СЭМы которые конечно крутые и простые, но предположу, что по ним очень мало инфы для новичка.

Изучи сначала AVR, потом STM32 и после этого уже в СЭМ.
Причем начни с ассемблеров.
437 403294
>>403284

>СЭМ


На сколько он сложнее stm32. Есть гайд для ассемблера stm32, а лучше для ESP32. Может кто знает.
438 403296
>>403294
Я думаю что он лучше и понятнее STM32, потому что лучше и понятнее STM вообще все.
Плюс сэм имеет охуевшую IDE. Я сам не работал, но вот все хочу попробовать.
Сужу по тому, что у атмеля не плоха документация и примеры.

Но гайдов по STM невообразимо больше. А когда ты только вкатываешься - гайды важнее всего, после того как изучишь 2-3 ядра по гайдам, сможешь сам любые с ходу изучать.

ESP32 закрытая платформа.
arduino-grande.jpg49 Кб, 600x450
439 403354
Пользователи STM32CubeIDE не проходите мимо! Просьба!

Принципиально юзаю командную строку и опенсорсные тулзы. (Не поехавший, удобно для CI и воспроизводимости.) Но судьба заставила обратиться к вам, люди добрые!

Нигде не могу найти Linker Script для Blue Pill (который на STM32F103C8T6). Собственно, это не была бы большая проблема, если бы мне не нужны были новомодные секции для MPU (которые содержат .privileged_functions и __syscalls_flash_start__) чтобы прикрутить это к FreeRTOS. Можно написать руками но ошибиться и потом потратить кучу времени впустую боюсь.

Если кому-то не трудно сгенерируйте пожалуйста .ld файл с ними?

С меня как обычно
440 403355
>>403296

>ESP32 закрытая платформа.



Ну как, относительно. Примерно как и stm32
441 403411
>>403355
Даташит на всю хуйню-периферию дали?
Исходники библиотек?

Я просто хз, может уже и дали.
14582099954480.jpg430 Кб, 2048x1536
442 403434
Хочу применить RTOS.

Правильно ли я понимаю, что сначала надо отладить функции, допустим, для ногодрыга, а уже потом прикручивать rtos?

Или надо сначала завести rtos, а уже потом ебаться с периферией?

Раньше дел не имел с ней, а тут понадобилось.
443 403451
>>403434
Когда писал мигалку - поступал проще.
Писал говнокод перед запуском планировщика и смотрел как он работает, потом запихивал в задачу и смотрел как поменяется работа. Так грубо писал, внимательно следя что бы не было пересечений с тем что уже используется в созданных задачах.
444 403665
>>314976 (OP)
Какого хуя Малинка первой/второй версии нихуя не распродается по бросовой цене? Почему не работает рыночек?
445 403774
>>403665
А почему он должен работать?
446 403787
>>403665
Рыночек работает, но не так, как ты понимаешь-хочешь.
447 403790
>>403434
Сука, под ёбаный камень нет поддержки i2c у Micrium OS.

Блядь, похуй. Попробую обойтись как-нибудь.
448 403824
>>403665
На авито платки A/B (не путай с A+/B+/Zero) в моём мухосранске по пятсот рублей вместе с корпусом отдают. Работает рыночек.
449 403825
>>403824

>На авито


Бля. Чот даже не подумал про него.
15473436113010.jpg81 Кб, 655x509
450 404331
>>314976 (OP)
Подмывает купить Jetson Nano и заебенить из нее дверной звонок с ИИ и нескучными мелодиями. Отговорите меня штоле
451 404332
>>403824
А B+?
452 404366
>>404331
Твоему ИИ подсунут фотографию и он обосрётся.
7554651135554.jpeg97 Кб, 552x800
453 407995
Мне надо получить прерывание каждые 100 миллисекунд по переполнению таймера.

Апноут на таймер: https://www.silabs.com/documents/public/application-notes/AN0014.pdf
Правда, не увидел там ничего по делу.

Формула для расчёта: The overflow rate is fHFPERCLK / (TIMER_TOP x 2^TIMER_CTRL_PRESC).

Таймер 16-ти битный. Тактируется от HFPERCLK, равного 72 МГц. Делитель таймера пока выставлен равным 8.

Надо высчитать TIMER_TOP.

Overflow rate это частота переполнений?
Т.е. будет равняться 1000 / 100 -> 10.
Тогда формула примет вид: 10 = fHFPERCLK / (TIMER_TOP x 2^TIMER_CTRL_PRESC)?
454 408012
>>407995
Безнадёжно бамп. :-(
455 408018
>>407995
Давай я тебя запутаю.
1. Каждые 100мс, т.е. с частотой 10 Гц
2. Переполняться должен 10 раз в сек., то есть:
10 = 72000000/TIMER_TOP x 2^8 ->
TIMER_TOP = 72000000/2^8 x 10 = 28125
НО! Если рассуждать логически, то это бред какой-то.
Частота на счетчике = 72/8 = 9Мгц
До 28125 он досчитает за 0,003125с, т.е. чуть дольше 3мс
456 408023
>>407995
Сдается мне, что ты не ту формулу употребляешь. Полез я в реф-мануал по этому диковинному контроллеру и не нашел там ничего подобного. Как и в остальных, генерируется прерывание при достижении счетчиком числа равного TIMER_TOP и сброс его в 0 при обычном счете вверх.
Т.е ставь делитель 144, TIMER_TOP на 50000 и каждые 0,1с у тебя будет прерывание
457 408044
>>408023

>Т.е ставь делитель 144, TIMER_TOP на 50000 и каждые 0,1с у тебя будет прерывание


Нет возможности поставить свободный делитель, как у таймера, так и у источника. Минимум 2^1, а максимум 2^10: 1-2-4-8-16-32-64-128-256-512-1024.

>>408018
Ок, тогда как правильно?
458 408046
>>408044
Минимум 2^0

/slowfix
459 408084
>>408044
Делишь на 2^8=256, TIMER_TOP = 28125
WAIT! OH, SHEEEEEEEE....
1445789046356.jpg26 Кб, 640x600
460 408086
>>408084
Да, смешно.

Я не вкурил как работает таймер, надо объяснить. Знал бы - не спрашивал.

Как это считается?
461 408095
>>408086

>Как это считается?


Делишь 72МГц на 256 и получаешь частоту на счетчике - 281250Гц. Тебе нужно чтобы прерывалось с частотой 10Гц, значит ставишь TIMER_TOP (т.е. до какой цифры будет досчитывать счетчик и сбрасываться в 0) равным 28125. Итак счетчик будет досчитывать до 28125 и сбрасываться в ноль десять раз за секунду. И генерировать нужное тебе прерывание если включил в настройках
462 408096
>>408095
ПыСы. Таймер 16-битный, значит считает до 65535. Делителем выбираешь на сколько поделись системную частоту, чтобы потом уложиться в эту цифру.
1494005930161019269.jpg38 Кб, 317x372
463 408107
>>408095
>>408096
Таа-а-к, паджжи, ёбана.

>Делишь 72МГц на 256


Откуда ты взял 256?
Ведь частота таймера будет равна fHFPER / Timer_Prescaler -> (72 МГц) / 8, разве нет?

И не ты ли говорил, что вот эта >>408018 фигня не работает?
464 408110
>>408107

>разве нет?


Я делю на 2^8 степени, т.е. на 256. Я просто не вдуплил в ебанутость твоего контроллера. Типа прескаллер = 8, а по факту делит на 2^8, т.е. на 256. В общем тогда все правильно получается. >>408018
554524213554522424.jpg64 Кб, 690x574
465 408118
>>408110
Нет, что-то не вяжется.

Посмотрел примеры кода в сети: допустим, частота от которой тактируется таймер равна 1 МГц, собственный делитель таймера равняется 1, в TIMER_TOP занесено 1000 и говорится, что прерывание по переполнению будет происходить каждые 1 миллисекунду, т.е. тысячу раз в секунду.

По конченой формуле мы получаем (1x10^6)/(1000x(2^1)) = 500 переполнений.

Хрень какая-то.

Ещё пример: допустим, частота от которой тактируется таймер равна 14 МГц, собственный делитель таймера равняется 1024, в TIMER_TOP занесено 27342 и говорится, что прерывание по переполнению будет происходить каждые 2 секунды.

// 13671 Hz -> 14Mhz (clock frequency) / 1024 (prescaler). Setting TOP to 27342 results in an overflow each 2 seconds

Ваши мылси, господа? Заебался я в край.
466 408121
>>408118

> = 500


2^1=1!!!!!
467 408122
>>408118

>Ваши мылси


С частотой 13671Гц до 27342 счетчик досчитает за 2 секунды, что не так?
468 408123
>>408121

>2^1=1!!!!!


Чота я гоню
Покажи ентот пример кода.
469 408136
>>408123
https://pastebin.com/PNxJRrir

>>408122
Да с примером всё так.

Не пойму, как подогнать таймер под мои нужды.
470 408138
>>408136

>https


Не нашел там где делитель задан
471 408139
>>408138
https://pastebin.com/vEHenjaD

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

.prescale = timerPrescale1,
472 408140
>>408139

>// Use /1 prescaler...timer clock = HF clock = 1 MHz


Слушай, я уже нихуя не пойму в твоем таймере. Тут пытаются сказать, что timerPrescale1 = 2^0
473 408146
>>408136

>Не пойму, как подогнать таймер под мои нужды.


Ну ты хоть как-то пробовал или пока только радач заебываешь?
474 408151
>>408146

>сижу в тематическом треде


>7 постов


Ух, как я всех заебал уже.

Конечно пробую. Чую, что придётся пиздовать на форум силабса, а там чсв-пидорасы кругом.
475 408153
>>315149

> Почему в STM32F4 такие мозголомные примеры в Кубе? Почему интернет заполонен какими-то ебанутыми, несовместимыми со здравым рассудком примерами? В одних HAL, в других SPL, третьи вообще говняют свои конструкции и хуярят байты налево и направо? Почему нет нормальных файлов справки и хоть какого-то единства? Как же мне печот-то, передать не могу.


Так надо брать нормальную RTOS где все это говно скрыто нахуй за драйверами HAL.
476 408160
Анон со 100 мс таймером репортинг-ин.

Нагуглил вот такую прогу: https://libstock.mikroe.com/projects/view/398/timer-calculator

И начал перебирать похожие МК.

Результат на пикчах.
Как проверял: по прерыванию таймера происходит ногодрыг пина.

Оказывается, силабс основали бывшие огрызки из микрочипа со своими пиками. Вот тебе и сходство.

Всем спасибо. Кота вам за помощь.
477 408174
>>408160

>Результат на пикчах.


Дык у тебя 200мс период, т.е. 28125 дало бы 100мс и 10гц
478 408186
>>408174
28125 тогда дало бы прерывание каждые 50мс по идее.
По осциллографу видно, что логические уровни меняются каждые 100мс по прерыванию.
479 408200
>>408186
У тебя прерывание по фронту/спаду или по обеим граням импульса ебашит?
480 408231
>>408200

>граням импульса

481 408232
>>408200
>>408231
Каждый rising и fallling edge - прерывание.
482 408234
>>408232
Значит условие нужно было ставить - как настроить таймер, чтобы переполнялся за 200мс
483 408310
>>408232

>rising и fallling edge


>>408200

>по обеим граням импульса



Сука блять нахуй, почитайте же уже наконец-то https://ru.wikipedia.org/wiki/Фронт_сигнала и выучите базовые термины в конце-то концов нахуй.
484 408312
>>408310

>и выучите базовые термины в конце-то концов нахуй.


NYET! Специально не выучу, чтобы такие как ты воспламенялись в треде
485 408320
>>408310
фронт-хуёнт ненужная совковая аббревиатура
rising и fallling edge модно стильно молодёжно
546588456135154564564.jpg17 Кб, 750x397
486 408324
>>408310
>>408320
Нечего сказать по делу
@
Придерусь к терминологии
487 411530
>>408153
Ты же шутишь, да?)
488 418728
489 418826
>>411530
А нахуя тебя F4 без RTOS?
unnamed.png101 Кб, 512x317
490 422001
Подсобите немношк.

Есть 32-ух битный WTIMER, который тактируется от 72 МГц и имеет делитель 1024.
Надо настроить на задержку от 5 мс до нескольких секунд.
Делитель задан жёстко и может быть от 2^0 (1) до 2^10 (1024).

Таймер тикает 72000000 / 1024 = 70312.5 раз в секунду.
И способен считать: 2^32 / (72000000 / 1024) => примерно до 61 секунды.

"Up-count — counts up until it reaches the value in TIMERn_TOP, then it is reset to 0 before counting up again (if in continuous
counting). When the counter goes from TIMERn_TOP to 0, an overflow event occurs."

До 900+ мс таймер работает как надо.
TIMER_TOP = ((fHFPERCLK / TIMER_CTRL_PRESC) x (N / 1000.0)) - 1

А вот формула для секунд уже даёт сбои и таймер начинает гнать.
TIMER_TOP = ((fHFPERCLK / TIMER_CTRL_PRESC) x N) - 1

Неправильная формула?

П.С. fHFPERCLK - частота, от которой тактируется таймер; TIMER_CTRL_PRESC - делитель таймера; N - задержка, в мс.
491 422003
s
492 422353
>>422001

>TIMER_TOP = ((fHFPERCLK / TIMER_CTRL_PRESC) x N) - 1


Возможно, тут задержка в целых секундах, не милли.
493 422359
>>422001

>TIMER_TOP = ((fHFPERCLK / TIMER_CTRL_PRESC) x (N / 1000.0)) - 1



Здесь ты написал 1000.0, поэтому компилятор все будет считать во float, а потом округлит до целого

>TIMER_TOP = ((fHFPERCLK / TIMER_CTRL_PRESC) x N) - 1



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

TIMER_TOP = (fHFPERCLK x N / TIMER_CTRL_PRESC) - 1
Либо
TIMER_TOP = (fHFPERCLK x N / (float)TIMER_CTRL_PRESC) - 1
Либо
TIMER_TOP = ((fHFPERCLK / TIMER_CTRL_PRESC) x (N / 1.0)) - 1
494 422470
=
495 422505
>>422359
>>422353
Ситуация такая: мне нужна частота ядра 72МГц. Максимальный делитель 1024 и он не меняется в большую сторону.
Какого-то хера даже 32-ух битный таймер записывает в регистр TIMER_TOP 0xFFFF (65535).

По формуле для секунд, даже для одной секунды выходит TIMER_TOP равным 70311.5.
Поэтому таймер фейлится.

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

Сейчас смотрю в сторону RTC. Пробую запустить.

Поддержка шлёт на хуй: мол изучайте сами, у нас всё норм.
496 422593
>>422359
В общем, получилось, похоже.

Осталось связать таймеры и идти дальше.
497 422646
Подскажите по LDMA.

Есть массив static uint32_t test_arr[] = {X1, Y1, X2, Y2, X3, Y3,...,Xn, Yn}; , содержащий всегда чётное кол-во элементов.

Если произошло Событие1, то надо передать X1; по Событию2 надо передать Y1.
И так далее: Х2, У2,..., Хn, Yn

Какой из режимов позволяет это провернуть из одного массива?
498 422804
>>422646
Забил, короче, сделал на указателях.
image.png201 Кб, 726x443
499 436149
>>315579

>Или ставится Visual Studio 2017, потом на торренте покупается VisualGDB. Устанавливается тоже далее, далее, ок. После запускаешь плагин в ВС, один раз проходишь процедуру настройки качая OpenOCD, тулчейн и пак с мк для работы с стм32.

500 436150
>>338466
Включить debug - выключить debug.
501 436151
>>338273

>>Что взять БЕЗ ГРЁБАНОГО ДОПИЛИВАНИЯ


TrueStudio. Он ничем не отличается в этом плане от кейл, установил exe-шник и сразу работает искаробки.
502 436642
Явлюсь счастливым обладателем Raspberry Pi B+, хочу использовать как контроллер для работы с датчиками, двигателями, лампочками. Вроде бы на с++ есть нужные библиотеки для работы с gpio и различными датчиками. Правильно ли я выбрал ветку?
503 436650
>>436642
Нафиг тебе с++? На малинке можно и на питоне писать.
504 437255
пизда скоро вашему /arm/
505 437437
>>437255
Ваше мнение очень важно для нас. Оставайтесь на линии.
506 437449
>>437437
Гомоэрегированные геи из яблока уже купили арм
507 437534
>>437449

>из яблока


Энвидия же покупать собралась, причем тут производители гомофона?
508 437613
>>437534
Тогда точно накрылся медным тазом ваш кортех
509 437623
>>437613

>Тогда точно н


Хуй там! Даже stm32f030хх будет иметь 100500 ядер CUDA и нервосетки можно будет обучать
14489889778243.jpg12 Кб, 321x325
510 443618
Первый раз сталкнулся с зависанием при выполнении программного цикла и не знаю как найти причину.

Кто-нибудь может объяснить, как разобраться с поиском проблем в eclipse-подобных IDE?

Сука, при дебаге код просто виснет и не пишется, что именно отвалилось.
Ничего криминального в код я не добавлял.
511 443619
>>443618
Не лучше ли в такой ситуации посмотреть что выдает gcc -S ?
image.png787 Кб, 527x720
512 443870
>>443618

>eclipse-подобных IDE

513 443885
>>443870
Ваши предложения?
514 443889
>>443885
Очевидно же - пользоваться инструментами разработки (Keil) непосредственно от компании разработчика микроконтроллера (ARM), а не жрать кривое опенсорснутое говно.
515 443892
>>443889
Компилятор кейла радостно сжирал у меня неправильный код логика правильная, но написано мимо стандартов C и выдавал бинарь, оный код выполняющий. GCC такое говно не сожрал и намекнул, что стандарты языка надо уважать. Вот теперь сижу и думаю, если кейл забивает на стандарты языка в одном случае, то он вполне может забивать на что-то ещё. Вкупе с закрытостью кода доверие это не вызывает
516 443893
Аноны, поясните за mbed. Стоит оно внимания и изучения? Насколько хорошо работает в проектах, выходящих за рамки демо-плат и демо-сценариев?
517 443898
>>443892
Настройки компилятора бывают разные, в кейле или в iar'е вроде есть проверка на соответствие misra c, толькот надо её включить.
518 443899
>>443898
А вот нахуй оно всё надо, если есть GCC, с которым можно работать хоть через eclipse, хоть через vs code, да хоть через code blocks, все из которых как IDE явно лучше кейла
ну и не надо целую винду ради этого говна держать
519 443903
>>443899

>ну и не надо целую винду ради этого говна держать


На самом деле armclang есть и под линукс, только хейтер опенсурса об этом наверняка не знает. Он наверняка даже не подозревает что некоторое время назад в кейле перешли с armcc (который на gcc) на armclang (который на ллвм со шлангом).
520 443907
>>443903

>На самом деле armclang есть и под линукс



Юзаю шланг который из коробке в дебиане, в нём тупо встроены все платформы сразу, надо только правильный target указать
521 443919
>>443907
Только armclang это не clang. Это шланг из которого выкинули шлангово-гцц-шные расширения, переделали вывод сообщений об ошибках к виду который был в armcc и так далее. И вроде как добавили каких-то своих оптимизаций, может быть даже ллвм-ный бэкэнд полностью свой сделали, а может и нет.
522 444008
>>443892

>мимо стандартов C


Да кому нужны эти стандарты.
Главное результат.
Кейл, после IARа, генерирует самый оптимизированный код по скорости/по количеству кода(на выбор).
В то время, как полностью соответствующий стандартам Eclipse GCC генерирует тормозное лагающее говно, отжирающее память.

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


Опять таки, главное не код, а результат его работы. Если ты проверил, протестировал, что твое устройство выполняет нужные функции надежно - какая разница, написан он на С полностью соответсвующем стандартом, или слега отходящем от стандарта. Хотя насколько я понимаю keil соответсвует стандарту С89.
523 444038
>>444008

>Eclipse GCC


Зачем приплетаешь эклипс? GCC самодостаточен и текстовый редактор, в котором написан код, не влияет на выхлоп компилятора. Зато может быть стоит указать с какой стандартной библиотекой Си оно используется, glibc там или newlib или еще что.

>Кейл


То же самое. В кейле используются компиляторы armcc и armclang, которые раньше может быть и не давали без кейла, но теперь дают. Также эти же компиляторы есть в среде ARM DS-5, которая тоже вся "от производителя", как ты любишь.

>генерирует тормозное лагающее говно, отжирающее память.


Можешь подтвердить свои слова? И желательно не на абстрактном примере, в котором допустим сравнивается какая-нибудь векторизированая хрень, а на куске твоего собственного кода.
524 444172
>>444038

>Можешь подтвердить свои слова?


Сравнение компиляторов для разработки на микроконтроллерах с ядром ARM Cortex-M
https://habr.com/ru/post/368779/
2.png15 Кб, 483x503
525 444173
>>444008

>генерирует тормозное лагающее говно


А вот на таком простеньком примере, кейл (причем и armcc и armclang) слил старенькому gcc из стабильного дебьяна. При -O3 разница по времени выполнения была около 20%. Причем gcc даже при -O2 немного опережал кейл с -O3 и -Ofast.
526 444175
>>444173
Проверял для Cortex-M3, если что.

>>444172

>Полный архив проекта (97.7 MB) доступен по ссылке "гуглодиск"


>Владелец переместил файл в корзину.

527 444187
>>444008

>проверил, протестировал


Вот как раз в ходе этого процесса хочется, чтобы компилятор идеально соблюдал все стандарты. Тулчейн должен быть таким, на который можно однозначно положиться, иначе могут возникнуть практически неуловимые баги. Вот за примером далеко ходить не буду, пусть он не про компилятор, но про тулчейн практически. Есть у меня один проект, там есть ESP32, код к которому пишется в Arduino IDE(не мой выбор, но мне лень оттуда слезать) с использованием тулчейна/библиотек от ESP. Так вот, возник у меня баг, при котором прочитанный из EEPROM SSID никак не находился, вывожу в консоль - всё вроде должно быть ок, да и рядом лежащий телефон спокойно подключён к нужному роутеру. И после долгих мучений я выяснил, что функция чтения строки из фирменной, мать её, библиотеки просто добавляла пробел в конец прочитанной строки. Круто, да? И в терминале этот пробел хрен увидишь. Вот потому тулчейн должен быть таким, чтобы единственными потенциально проблемными местами были твой код и железяка. И GCC в этом плане меня никогда не подводил
528 444198
>>444172

>Светлая тема в IDE


Фубля, аж глаза резануло, как жить-то так можно?
кейл ваш, кстати, туда же
529 444317
>>444198

>аж глаза резануло, как жить-то так можно?


Ну ладно, ладно, мамкин кулхацкер. Сиди с темной темой, кто же тебе запретит? А я охуеваю когда светлую в Автогаде вижу. Хочется сидящего за монитором еблетом об стол побить.
530 444327
>>444317
У меня светлая тема в автокаде.
531 444337
>>444327

>У меня


Убил бы.
532 444339
>>444337
че пичот?
Но ведь светлая тема как будто по бумаге чертишь. Где ты видел темную бумагу?
533 444408
>>444172
устарело давно, компиляторы сейчас очень быстро развиваются. По крайней мере, те что LLVM-based
534 444567
>>444317
А причём тут кулхацкер-то? На тёмной банально лучше синтаксис видно. Да и, будем честны, светлые темы везде как говно выглядят. В том числе и в пресловутом автокаде
dope3iatlut41.png469 Кб, 960x717
535 444610
STM32 тред утонул, потому что мочух - ленивое хуйло.
Спрошу тут.

Никто не натыкался на реализацию авто-настройщика ПИД регулятора для ARM микроконтроллеров?

Алсо, может кто-нибудь поделиться методой настройки коэффициентов ПИД регулятора?
Нашёл пару статей, но ебли будет огого.
536 444611
>>444610

>но ебли будет огого


А ПИД без ебли не настроишь

мимо бывший КИП
537 444616
>>444610
метод циглера-никольса
538 445128
>>314976 (OP)
Какие есть нормальные книги (на русском!) по STM32 и ARM в целом?
539 445219
>>445128

>нормальные книги (на русском!) по STM32


Нет таких. Учи ангельский
540 445226
>>445128
Есть перевод "Ядро Cortex-M3 компании ARM. Полное руководство". Однако "ARM в целом" это очень много разных ядер, а STM32 это тоже много разных серий микроконтроллеров с отличающейся периферией. Может стоит определиться конкретнее?
Но что ты вообще хочешь получить от книги? Такие книги не могут заменить документацию, они будут лишь дополнением, в котором разжевывают некоторые нюансы.
А также, чем существенным отличаются ARM микроконтроллеры от любых других с точки зрения практического применения? Если не писать самостоятельно операционные системы и не лезть в ассемблер, то какая разница?
541 445242
>>445219

>Учи ангельский


Не хочу учить из принципа.
Я патриот.
542 445243
>>445226

>Есть перевод "Ядро Cortex-M3 компании ARM. Полное руководство".


Спасибо, уже скачал.

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


Да, именно это мне и нужно.

>А также, чем существенным отличаются ARM микроконтроллеры от любых других с точки зрения практического применения?


Конечно я согласен, что если писать на Си/С++ то разницы нет никакой. Но дело в том, что в вакансиях в графе "требования" пишут что-то вроде "опыт работы, знание устройства и особенностей архитектур 8051, AVR, ARM ...".
543 445244
>>445243

>в графе "требования"


>знание устройства и особенностей архитектур 8051, AVR, ARM


Перескажи хрюше первую страницу даташита любого контроллера из серии, ей хватит.
544 445247
>>445242
Patriot
545 445249
>>445243

>пишут что-то вроде "опыт работы, знание устройства и особенностей архитектур 8051, AVR, ARM ...".


По моему не стоит понимать такое буквально, мало ли какую чушь напишут.

>>445242
Тогда читай спецификацию 1986ВЕ1Т.
546 445704
>>314976 (OP)
Для вычислений протеинов ищу мк с битовой адресацией данных.
Так вот, их только мк архитектуры 8051 поддерживает или еще какие мк есть с такой функцией?
547 445709
>>445704
Что-то подобное есть в ARM Cortex-M3 и M4, называется bit banding.

>Для вычислений


Зачем? Это бессмысленно. Допустим понадобится для доступа к биту не одна инструкция, а две, то какая разница для вычислений? Ну возьмешь микроконтроллер с тактовой частотой повыше, если потребуется, подумаешь проблема. По моему оно нужно для атомарного доступа к битам, да и то не факт что такое вообще нужно.
548 445746
Подскажите готовый опенсорсный загрузчик с SD карты? Чтобы заходил на флешку, скачивал и загружал себя во флеш. А если сбой то чтобы мог откатить всё назад.

Надо решить задачу удалённого обновления устройств без связи, наверняка решено уже 300 раз.
Аноним 549 446807
>>314976 (OP)
короче есть идея написать че то типа сервисной программки, которая будет позволять читать/записывать/бекапить флеш/еепром/rtc, при этом не загружаясь в память работая из оперативы. Для коммуникации надо олед на SSD1306 и кнопки через PCF8574 по i2c, и сд карточка по SPI, вопрос, есть ли перспективы у такой херни и могут ли набутылить если какой то хуй считает прошивку у коммерческого устройства с помощью этой хуевины если ее вообще возможно считать
sage 550 446810
>>446807
Что за бред я читаю?

>не загружаясь в память работая из оперативы.


Если ты о том, чтобы загрузить программу в RAM через JTAG/SWD/бутлоадер, а потом эта программка что-то будет делать, то у тебя бред. Вообще-то именно так часто делают при штатной прошивке через JTAG/SWD/бутлоадер. Если JTAG/SWD/бутлоадер не отключены, то читай прошивку как угодно, все уже готово, ничего делать не нужно.
Иначе, если все это отключено аппаратно, запрещено чтение и т.д., то для некоторых микроконтроллеров путем каких-то ухищрений (обычно с питанием) эту защиту можно обойти, но это уже совсем другое дело.

>Для коммуникации надо олед на SSD1306 и кнопки через PCF8574 по i2c


Шиза какая-то.
551 446949
Народ, а как сделать в LPC1768 Input Float как на STM32 - GPIO_Mode_IN_FLOATING?
Ничего подобного найти не могу.
552 446971
>>446949
Может быть стоит начать поиски с изучения user manual? А то с чего ты вообще взял что LPC так могут?
553 446986
>>446971
Ой, не надо искать глупее себя. Смотрел, и слово float там только есть для i2c.
554 446987
>>446971
Задача такая стоит, нужно для периферии
1.png100 Кб, 914x851
555 446996
>>446986
Значит ты не там смотрел. А то что тебе нужно называется PINSEL_PINMODE_TRISTATE, если я не ошибаюсь.
556 447041
>>446996
Спасибо! Похоже на то, просто особого внимания на TRISTATE не обращал.
557 447630
насколько сложно реализовать на STM32 приблуду которая будет подключатся к облаку, а с облака можно будет как конфигурить саму стмку, тоесть например через 15 секунд подать передний фронт на дискрет 1, и всякие такие несложные функции
558 447643
>>447630
в ардуино иде как два пальца об асфальт через pubsubclient. Только вот если поддержка stm32 в ардуино иде
559 447685
>>447630

>будет подключатся к облаку,



Зумер?

Дай определение, тогда скажу подробнее.
560 447733
>>447630
Тебе нужна будет либо стмка с эзернетом на борту и схема для физического уровня, либо прослойка в виде какой-нибудь esp. Потом продумать систему команд и написать прошивку, выполняющую эти команды, и проверяющую твоё "облако" вангую, это самая жопошная часть, возможно, проблема не решаемая в общем случае. Если взял есп, прошивка по работе с вебом на ней будет.
Если что-то из этого не вызывает у тебя мысли: "А, я уже делал нечто подобное, и знаю примерно как и что", то не лезь. Начни с чего попроще.
561 447845
Здарова бандиты

The new flexible $4 microcontroller board from Raspberry Pi

Raspberry Pi Pico is a tiny, fast, and versatile board built using RP2040, a brand new microcontroller chip designed by Raspberry Pi in the UK.

RP2040

Designed by Raspberry Pi, RP2040 features a dual-core Arm Cortex-M0+ processor with 264KB internal RAM and support for up to 16MB of off-chip Flash. A wide range of flexible I/O options includes I2C, SPI, and — uniquely — Programmable I/O (PIO). These support endless possible applications for this small and affordable package.

For beginners, for experts

From controlling appliances to operating a light display, Raspberry Pi Pico puts the technology that underpins countless everyday operations into your hands.

Programmable in C and MicroPython, Pico is adaptable to a vast range of applications and skill levels, and getting started is as easy as dragging and dropping a file.

More experienced users can take advantage of Raspberry Pi Pico’s rich peripheral set, including SPI, I2C, and eight Programmable I/O (PIO) state machines for custom peripheral support.

https://www.raspberrypi.org/products/raspberry-pi-pico/
562 447877
>>447845
Больше проприетарных чипов богу проприетарных чипов
563 447896
>>447877
и чё в ней такого проприетарного?
564 447902
>>447896
даташиты где? сишные хеадеры где? описание jtag где?
изображение.png45 Кб, 1051x390
565 447903
566 447914
Можно ли на каком-нибудь STM32 запустить дисплей от смартфона по типу такого?:
https://pine64.com/product/pinephone-5-99-lcd-panel-with-touch-screen/?v=0446c16e2e66
И как это сделать, чтобы работал и сам дисплей, и тачскрин?

Хочу сделать смартфон на микроконтроллерах.
Распберри пи не предлагать, там напаяно куча металлоконструкций, который мешают, придают громоздкости. Когда-то сделал автономный планшет на распберри пи, но всё-равно было не очень юзабельно.
И пайнфон этот не хочу покупать, мутный он какой-то. И всё-равно придётся писать часть софта самостоятельно.
567 447928
>>447914
Судя по всему можно с микроконтроллерами у которых есть LTDC, только естественно нужна документация на сам дисплей. Возможно есть смысл потренироваться для начала на STM32F746G-DISCO.

>и тачскрин?


Там вообще обычно I2C, если я не ошибаюсь.

Только идея у тебя бестолковая и ты скорее всего ничего вменяемого не сделаешь. Нахрена вообще телефону тачскрин и такой дисплей, если на нем нельзя будет запустить браузер или видеоплеер? Или ты о STM32MP1? Но даже если так, то это тоже ерунда.
568 447940
>>447914

>Хочу сделать смартфон на микроконтроллерах.



Если купить у хачей/цыган в переходе "ифон" китайский то это оно и будет. Если их ещё продают, давно не видел.
569 447951
>>447928

>если на нем нельзя будет запустить браузер или видеоплеер?


А карты? Загрузить OSM на сд-карту и двигать, скейлить ёмкостным тачскрином. А когда надо вписать текст, то открывать экранную клавиатуру, а не пытаться перебирать что-то несколькими физическими кнопками.
570 448080
>>447951

>А карты? Загрузить OSM на сд-карту и двигать, скейлить ёмкостным тачскрином.



А у тебя есть такой софт, не заточенный под OS? Я писал навигацию - задача не так проста как кажется, нахрапом не решишь.
571 448167
>>448080

>такой софт, не заточенный под OS


Нет. Когда-то пытался отрисовывать OSM-карты вручную, но в интернете всё время натыкался на шизофрению типа отправить XML-данные на какой-то третьесторонний сервер, чтобы он отрендерил или что там было.
В любом случае, у OSM есть вся карта (где-то 50 ГБ) в т.н PBF формате: https://wiki.openstreetmap.org/wiki/PBF_Format
К сожалению, вроде нет нормальных библиотек по взаимодействию с ним и надо читать документацию и вручную писать библиотеку. На SD-карту в 256 ГБ можно будет поместить и всю планету в виде OSM, и английскую википедию с медиафайлами в OpenZIM формате (для которого тоже библиотек почти нет или написаны на жсе).

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

Так что всё упирается в скорость, размер флеша и ОЗУ микроконтроллера и надёжность+скорость хранилища данных.
572 448234
>>448167

>В любом случае, у OSM есть вся карта (где-то 50 ГБ) в т.н PBF формате



Это формат для компактного хранения а не для быстрого отображения. Для отображения надо как минимум поверх 2D-индексацию прикрутить.
573 448249
>>448167

>Когда-то пытался отрисовывать OSM-карты вручную


Вот же дурачки сидят в автодеске и прочих, да? выдумывают всякие MapServer-ы и другую хуету для рендеринга векторных карт. Но тут Анон возьмется и на ардуине захуярит. Осталось чутка напрячься, написать библиотеку и всё. А ничего, что там float-вычислений до жопы? Контроллер просто крякнет это обсчитывать, не говоря уже о выоде на экран.
574 448298
>>448249

>А ничего, что там float-вычислений до жопы? Контроллер просто крякнет это обсчитывать



В Cortex-M4 уже завезли. Стоит 350 рублей на алике.
575 448302
>>448298

>В Cortex-M4 уже завезли. Стоит 350 рублей на алике.


И сколько он будет пересчитывать карту на миллион полигонов при переходе на другую СК?
576 448303
Что за ерунду вы тут развели?
Стоило всего лишь ответить что в старших стмках есть LTDC, но сама идея хрень полнейшая, как начался бред. То анону не нравится то что на малинке куча лишних для его задачи деталей, а то вдруг берется запросто угробить кучу времени на какую-то хрень, которую не факт что сделает, а даже если сделает то ей толком невозможно будет пользоваться. Да за то же время можно сотню раз малинку переразвести.
577 448379
>>448302

>>В Cortex-M4 уже завезли. Стоит 350 рублей на алике.


>И сколько он будет пересчитывать карту на миллион полигонов при переходе на другую СК?



Миллиона не должно быть - пересчитывается только то что на экране надо отобразить. Это сотни-тысячи.
578 452878
Аноны, а куда STM32 пропали из магазинов? Даже на али f103 - одна паль
579 452879
>>452878
Не выдержали конкуренции с али
580 452881
>>452879
Да ну! На али только 103 подделывают, и то хреново, а пропали все серии
581 452883
>>452878

>куда STM32 пропали из магазинов?


Никуда не пропадали https://www.electronshik.ru/catalog/mikrokontrollery/7Mfo А вот с ценами, что-то неладное.
582 452908
>>452883
И даже тут не все модели есть, нет в том числе "народной" STM32F103C8T6, многие модели со сроками поставки в недели и месяцы
народная.JPG76 Кб, 1084x663
583 452909
>>452908

>нет в том числе "народной"


Есть, но с ебанутой ценой
народная 2.JPG64 Кб, 1128x588
584 452910
>>452908
Бля. Даже у самих ST их нет. Наверное майнеры клятые раскупили на стадии литографии.
DSC7278.jpg99 Кб, 1920x1285
585 452912
>>452908

>"народной" STM32F103C8T6


Впсовнил что года полтора назад прикупил 103CBU6 десяток по 50р/шт. Они правда оказались б/у, выпаянные откуда-то заботливым китайцем. Настало время проверить их работоспособность. что-то хуевые времена настают.
586 452940
>>452910
Тут сразу 2 фактора, ка мне кажется, пандемия приостановила заводы + майнеры, мать их, заводы своими видеокартами перегрузили

В итоге я вообще не понимаю, на какие МК теперь кидаться в плане изучения, учитывая то, что уже они могут также рандомно пропасть
image.png68 Кб, 462x517
587 454623
>>314976 (OP)
Допустим, работая в гос.учереждении или фирме ты разработал ряд микропроцессорных устройств(прошивки и/или схемы).
Как потом добавить их в свое портфолио?
ПРОСТО приложить фоточку устройства и черкануть пару строк о нем, как здесь
<<
Или еще от РАБотодателя нужно затребовать документальное подтверждение того, что именно ты сделал это устройство и оно успешно продается и эксплуатируется? И как тогда такой документ будет называться - справкой, рекомендация с предыдущего места работы, етц?
Собственно, увольняться не планирую, но на всякий случай решил соствить портфолио, чтобы на случай, если выкинут на мороз, можно было легче устроиться на новую работу.
588 454626
>>454623
Портфолио надо, если ты будешь фрилансером, тогда

>> ПРОСТО приложить фоточку устройства и черкануть пару строк о нем, как здесь


достаточно.
Если устраиваешься в фирму, просто покажи свои платы, у тебя же есть бракованные и тестовые? Ни один работодатель в здравом уме справку тебе не даст, вдруг ты хочешь оспорить его право на эту разработку?
589 454636
>>454626

>Портфолио надо, если ты будешь фрилансером


Так портфолио в любом случае надо, чтобы указать в резюме, ведь работодатели думают следующим образом:

>опыт - это не столько года которые ты пропердел в стул на позиции [...], а законченные проекты, задачи, технологии, с которыми ты работал


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

>просто покажи свои платы, у тебя же есть бракованные и тестовые?


Лично у меня есть только макетки с кучей проводов, на которых тестировал прошивки, полноценные платы только у фирмы. Но они работоспособны.
А с ПО как быть? Снять видео, демонстрирующее работу устройства?

>Ни один работодатель в здравом уме справку тебе не даст, вдруг ты хочешь оспорить его право на эту разработку?


Хм, я об этом не думал.
По этой же причине, полагаю, нельзя показывать схемы и код с предыдущего места работы, ведь это интеллектуальная собственность работодателя.
590 454640
>>454636

>Снять видео, демонстрирующее работу устройства?


>и присесть за шпионаж в особо крупных размерах


Надо смотреть, что за госконтора в которой сейчас работаешь. А то сума и турьма заждались тебя.
591 454652
>>454640
Да не, в частной фирме, но это тоже не варик выходит.
Чтож, получается, надо в портфолио просто написать список проектов. Без каких-либо пруфов.
592 454713
>>454652
достаточный пруф, что ты можешь внятно рассказать, что делал и почему так. Электроника не айти, где толпа нубов после курсов строит из себя сеньоров
593 456471
>>314976 (OP)

>https://ru.wikipedia.org/wiki/Mbed


>Отличительной чертой mbed является вариант работы, при котором программист не нуждается в инсталляции специального инструментария для программирования контроллеров. В этом варианте для написания кода используется онлайн IDE, работающая через браузер. Компиляция также производится онлайн.


Проиграл с жидков.
Это дно хуже, чем компляторы, работающие через юсб-ключ.
Т.е. в любой момент(по желанию левой пятки), владелец этого онлайн-компилятора отключит его, или сделает доступ к нему только за тысячи долларов, и всем твоим разработкам, написанных на mbed пизда.
594 456477
>>456471

>и всем твоим разработкам, написанных на mbed пизда.


Они же не запре
595 456718
>>456477
Снайпер в тре
596 460286
>>314976 (OP)
В связи с тотальным пропаданием с рынка бюджетных STM32, полез смотреть аналоги у конкурентов и понял, что Cortex-M4/7 микроконтроллеры сопоставимые с STM стоят в полтора, два раза дороже и потребуют дохуя сил на курение их мануалов, покупку программаторов, и т.д. Пиздец какой-то. Чо делать-то?
597 460316
>>460286
Че за говно... Реально, STM32F103C8T6 за 10 штук хотят около 53 usd. Раньше, по-моему, дешевле было... Хотя, STM32F030 по-прежнему дешевенькие.
598 460317
>>460316
Фикс. Писал про алик.
Хотяяя... Я, вероятно, и подгоняюю насчет цены.

Но, кстати, в местном украинском радиодетальном магазе реально нет контроллеров серии f1.
599 460329
>>460286
Переходить на нижние stm32
sage 600 461099
>>314976 (OP)
кто-нибудь может привести пример личного проекта который не вытащил бы avr?
sage 601 461100
>>461099
сажа прилипла
602 461101
>>461100
>>461099
да блять
603 461103
>>461099
Какой авр? Атмега8/168/328? Элементарно - вывод информации на цветной 320х240 жк дисплей с более-менее высокой частотой обновления, а не 0.5-2 гц. Банально низкая производительность, даже не глядя на унылую встроенную периферию.
1600426333353.png67 Кб, 200x200
604 461105
>>461103
Ты делол? Я и сам могу придумать хуллиард теоретических применений, дай реальные проекты
sage 605 461188
>>461105
Transistor tester.
606 461996
>>460317
По Украине синих таблеток на STM32F103C8T6 можно еще купит ьпо 3 доллара, причем сами чипы похожи на оригиналы, читается ID и ревизия в прошивке совпадает с маркировкой на корпусе.
Если что scylots
607 462429
>>315358
Ну суть в том что программируя железо абстракция и не нужна, она делает работу кода только хуже. Хороший программист мк это не программист по образованию, а электроник.
608 462440
>>461996
Загони в бутлоадер и замерь напряжение на jtag пинах. Если нет подтяжки вверх, значит левак
609 462895
>>462440
Хуй знает.
PA15(JTDI) - 3.3V
PA14(JTMS) - 3.3V
PA14(JTCK) - 0V
PB3(JTDO) - 1.5V
PB4 (JTRST) - 3.3V
610 462896
>>462895
И кстати, нигде не залит блинк, вроде китайцы заливают блинк не?
611 463464
Хули вы развели? Юзаю атмеги пол года
612 463521
>>463464
спасибо за информацию, продолжайте наблюдение
613 463752
АРМ проектирует одна контора. Другие конторы штампуют микросхемы, интел, микрочип, ренесас и т.д. Но почему у всех свои библиотеки и IDE если одна и та же архитектура?
sage 614 463753
>>463752
Бля, торможу, это библиотеки периферии и др. что не АРМ арх.
615 463754
>>463752

>почему у всех свои библиотеки


Это не совсем так, CMSIS-Core один на всех. А поскольку хоть ядро одно, но периферия у всех разная, соответственно требуются разные библиотеки. В том что касается остальной периферии, которая не входит в состав ядра, CMSIS требует от производителей описать все регистры единообразно и в соответствии с рядом требований. Но CMSIS низкоуровневый и поэтому производители делают высокоуровневые библиотеки, однако часто даже у одного производителя они разные для разных серий микроконтроллеров, в качестве примера STM32 - HAL и LL для каждой серии свои.

>и IDE


Это тоже не так. Ну да, зачастую лепят какую-то хрень на эклипсе, бывает при этом приделывают какие-то специфичные штуки, вроде куба или замеров энергопотребления у силабс. Только никто не заставляет пользоваться этим.
616 463771
>>463754

>Это тоже не так. Ну да, зачастую лепят какую-то хрень на эклипсе, бывает при этом приделывают какие-то специфичные штуки, вроде куба или замеров энергопотребления у силабс. Только никто не заставляет пользоваться этим.


Ну, у микрочип библиотека AFS открыта, но просто огромна, выбрать из нее только то, что нужно, без IDE, не тривиальная задача. В IDE можно указать что нужно, usb-cdc бла бла, и оно копирует это в твою директорию.
Не знаю почему они не используют стандартные механизмы. Нужен USB: git clone usb-cdc && make DEVICE=x. Но нет, нужно их IDE юзать.
16168600913701.png77 Кб, 699x463
617 464877
Кто-нибудь пользовал PID библиотеку от ARM?
https://github.com/ARM-software/CMSIS/blob/master/CMSIS/DSP_Lib/Source/ControllerFunctions/arm_pid_init_f32.c

У меня вопросец: надо ли каждый раз вызывать функцию инициализации при изменении параметров PID?
Т.е. изменил параметр Kp, например -> вызвал функцию. Или иожно на лету менять?
618 468288
Наврядли помогут, но спрошу тут. Бо поддержке, похоже, глубоко похуй на мои потуги.

Хочу задействовать FPU на МК ARM Cortex-M4.

Всё упирается в строчку макроса
#if defined (__VFP_FP__) && !defined(__SOFTFP__)
__VFP_FP__ и __SOFTFP__ - неопределены, нужные значения макроса неактивны.

Как это исправить?
619 469092
>>468288
в настройках линкера посмотри может там переопределено.
620 469099
>>469092
asda sda sd asd
image.png486 Кб, 691x502
621 472270
Есть типа такой поебени, я могу в теории её к orange pi pc припаять и шобы оно ещё и работало? Как загуглить такое? Олко, есть на двоще тред конкретно по одноплатникам?
622 472271
>>472270
смотря к какому одноплатнику, некоторые могут в pcie.

прям так и гугли, "название_борды pcie"
623 472272
>>472271
Так, ну судя по этому - https://raspberry3.ru/orange-pi-3-obzor-i-sravnenie/, писиай появлися только в третьей версии, а значит в первой его нет, я прав? Вообще совсем никаких способов без дополнительных плат его туда не присобачить?
624 472274
>>472272
там не в платах дело, можешь подпаяться к разьему, где о н есть. Засада в том, что PCIE интерфейс шустрый, на ARM-ном GPIO не сэмулируешь.
625 472294
>>472272
Оранжи на allwinner в основном. H3 без pci-e, h5 без, в h6 есть но там он забагован и линуксом не поддерживается.

Хороший pci-e у rk3399 но он дорогой, платы с ним около 100$ были до кризиса ещё.
626 472434
>>472270
Кстати о прикручивании необычных деталей к одноплатникам, никто не видел статью об установке на Raspberry Pi Zero GBAшного экрана?
627 472459
>>472434

>GBAшного


ЧИВО?
628 472468
>>472459
Экран от игровой приставки Game Boy Advance. Последнюю неделю у меня вертится в голове этот вопрос, то ответ я пока не нашёл.
629 475237
Объясните, можно ли к пи подключить свич и тем самым раздавать интернеты по проводам на несколько девайсов?
630 475238
>>475237
можно, но из малинки такой себе роутер выйдет, дороговатенький.
631 475239
>>314976 (OP)
есть два stlinkv2 кетайских, могу один перешить во что-нибудь другое. Что анон посоветует - jlink или black magic probe?
bengunnmbengunn.jpg6 Кб, 170x200
632 475957
>>475239
Go with the black magic probe.
633 475958
Дефицит в этом году дошёл только до производителей, в следующем и до потребителей дойдёт. Сейчас лид тайм на китайские полупроводники около полугода. Это пиздец для производства.

Порты перегружены, людей почему-то не хотят нанимать; стоимость переправки контейнера выросла в два раза.
634 475964
>>475958

>стоимость переправки контейнера выросла в два раза.


Там вроде зависит от направления. Из Китая в США вроде даже в 20 раз.
Ну я смотрел mygap на эту тему вроде, он так поясняет.
https://youtu.be/7iF-xM30rXk
635 479896
>>314976 (OP)
Кто-то пробовал Mbed?
Он проще, чем Cube MX?
Правда ли, что на нем писать также просто как в ардуино иде?
Сам я ардуинщик и возможность легкого переката из ардуино иде в стм-ки через Mbed кажется заманчивой.
636 480315
>>377514
На AnalSkript. Только анальная пробка нужна, анимешная. Для мужественных олдскульных пидарасов не подойдет.
637 480317
>>447914
Смотри сразу в сторону F7. Вон, один человек пилил семплер на STM32, он брал седьмую серию (если знаком с оборудованием Pioneer DJ средины 2010х, то это что-то очень похожее по фичам).
638 480982
>>479896
Да, как ардуинка. Также много контроллеров, такой же говёный код, подойдёт для ди-ай-вай.
639 480984
>>479896
Лучше уж HAL + FreeRTOS
640 480985
>>479896
Лучше уж HAL + FreeRTOS
641 480986
>>479896
Лучше уж HAL + FreeRTOS
642 481016
Какие аналоги есть у STM32? Интересуют линейки F1 и F4. Под аналогами я подразумеваю не просто "шоб було", а такие, которые как STM32 тоже очень активно используються в промышленности.
643 481019
644 481345
Нет тут кунов около-безопасников, которые в хардварь секьюрити роются? Как вам вообще реверсится и эксплойтится данная архитектура?
645 481346
>>481345

>безопасников


Эти хуже пидорасов. Все чем они занимаются на практике - правильное оформление бумажек, чтобы не прикопались аудиторы и прочие внешние проверяльщики. Разумеется по мере возможности при этом перекладывают ответственность и прикрывают свою жопу, причем только бумажками разумеется.

>хардварь секьюрити роются


Что это ты имеешь в виду?
646 481348
>>481346

> Что это ты имеешь в виду?


Проверка оборудования на "закладки".
647 481349
>>481346

>Эти хуже пидорасов


Да я понимаю, хотя я сам не безопасник, но роюсь и в ней.

>Что это ты имеешь в виду?


Направление "Hardware Security". Проектирование безопасной аппаратной архитектуры, если быть кратким.
648 481391
>>481348
С этим еще проще, хотя в чем-то может и сложнее. Наиболее заметный пример, пусть не про железо а софт, но это не столь важно - все эти сертифицированные отечественные линуксы. Сколько дыр находили и продолжают находить в одном только ядре линукса? Таким образом очевидно что все эти сертификации и прочее это не про безопасность, а про бабло. Ну может быть что-то прям уж совсем явно палящееся они не пропустят, но это я оптимист наверное.

>>481349
Все равно не понимаю. Например в микроконтроллерах есть аппаратная защита прошивки от считывания и копирования и в некоторых микроконтроллерах эту защиту можно обойти снижением напряжения питания и/или подачей импульсов по питанию или как-то еще аналогично. Это относится к твоему "Hardware Security"? Но тут проблема в том что одна часть микросхемы продолжает работать при пониженном питании, а другая нет, то есть исследовать такое нужно на уровне транзисторов.
Или относительно недавно нашумевшие meltdown и spectre - это проблемы на уровне rtl, от которого до транзисторов весьма далеко.
Это две совершенно разные проблемы, для выявления и устранения которых требуются познания в разных областях, пересекающихся лишь частично. А потом в почти любой железке есть и софтовая часть - это еще одна область. И все это ты хочешь намешать в одну кучу?
649 481395
>>481391
Есть такая легенда среди военов, что в каждый чип, купленный за границей, встроен радиопередатчик, который каждый день отчитывается куратору о том, как воен подрочил и где находится его ржавый советский металлолом.

Именно поэтому они дпочат на отечественные чипы, ведь там точно нет шпионских закладок. Страну опять спасли, ой как здорово, ой не могу!
650 481408
>>481391

>Это относится к твоему "Hardware Security"?


Мои действия закончатся на анализе прошивки.

>относительно недавно нашумевшие meltdown и spectre


Уязвимостям уже несколько лет, не знаю где они "недавние". Из недавних аппаратных CVE я знаю только VoltPillager. Но и там задействован SGX, он косвенно пересекается с софтом.
https://zt-chen.github.io/voltpillager/

>И все это ты хочешь намешать в одну кучу?


Ох, я разбираюсь в частности с прошивками и их работой, все, так теперь понятнее?
651 481410
>>481391

>Сколько дыр находили и продолжают находить в одном только ядре линукса?


Ну, прикинь сколько это фаззить определенные модули ядра? Тоже не мало времени занимает. Ядро линукса - жутчайший легаси, в котором рыться и искать что-то ой как не хочется.

>уж совсем явно палящееся они не пропустят


Критичные уязвимости переходят на первый план обычно. Фиксят, их, собственно быстро, из-за чего вместо одной иногда появляется две и более уязвимостей.
Уязвимости, которые не вызывают аппаратных сбоев или сбоев в ядре, обычно фиксят медленее. Даже которые самые неприятные
652 481445
Подскажите. Есть устройство в котором стоит МК один из контактов которого закоротило внутри на минус питания. На форумах прочитал, что как вариант можно попробовать прожечь кз( типо МК в утиль и хуже ему уже не будет,а после прожега есть мизерная возможность, что он заработает).
Как это сделать "по правильному" ? Need help, как говориться..
653 481507
>>481445
Контроллер выпаять и делай что хочешь. Я думаю нужно подать заведомо большое напряжение и ток, как при сварке или пайке, чтобы эффект был точечным. Иначе будет печка, которая постепенно перегреет весь кристал.
Что-то вроде 12 В/10A от компьютерного БП. И подавать такое напряжение одиночными импульсами, сначала короткими, потом длиннее, до тех пор пока не получится нужный эффект или не сгорит все.

Чисто теоретические советы, никогда таким не занимался.
654 481550
>>481345

>Как вам вообще реверсится и эксплойтится данная архитектура?



Сниферы + безумные дедуктивные умения уровня камбебетча

https://www.youtube.com/watch?v=Vq1lxeg_gNs
655 481579
>>481550
Спасибо! Посмотрю подробнее в эту сторону
656 481643
>>481345
MCU разных фирм могут быть защищены по-разному, в зависимости от назначения тоже по разному. Есть аппаратные средства защиты, но они в основном не от атаки защищают, а повышают надежность. У микроконтроллера чаще всего закрыта на пароль отладка JTAG, BDM, BSL и т.д. Атаки в основном деляться на глитч атаку и сайд-ченнл. Микроконтроллер можно замедлять тактируя на килогерцах, мешать работе его ядра и т.д. Отслеживаются токи потребления, температура. Воздействуют электромагнитным полем, температурой. Успешно атакованный закрытый микроконтроллер в свою очередь дает возможность задокументировать атаку и создать относительно простой программатор который будет буднично подламывать. Renesas строит защиту на модуле FCU, секвенсер доступа к памяти. У файрчалд/моторола использует похожие, но не такие методы, часто подламываются глитч атакой на ножку Xtail. Обширная тема очень и чтобы понимать нужно неплохо знать микроконтроллеры. Есть еще момент что прошивка криптованная, ее реверс сложен и долог, но выливается это все в утилиту весом в 5 мегабайт которая все может поправить в ней. Есть дорогостоящие программы для реверса бинарника вытащенного из контроллера, которые декомпилируют примерный код, из-за разнообразия ядер и реализаций все очень громоздко, но при известном упорстве эти программы справляются, можно примкнуть к разработке и помочь в отладке декомпилятора для конкретного микроконтроллера. Длинно и путанно я наверное объяснил и очень сумбурно, но как есть теперь.
657 481656
>>481643
Это всего лишь защита от копирования прошивки, которая вовсе может быть открытой. Но "хардварь секьюрити" это наверняка более обширная тема, впрочем фиг поймешь что имел в виду тот анон.

>>481410

>Критичные уязвимости переходят на первый план обычно.


Ага https://news.ycombinator.com/item?id=26887670
658 481686
>>481643

>Обширная тема очень и чтобы понимать нужно неплохо знать микроконтроллеры


Я тут и чтоб учиться тоже. До этого я работал с виндой на уровне ring 0, но хочу абстрагироваться и уйти куда-нибудь в более интересное дело.

>Есть дорогостоящие программы для реверса бинарника вытащенного из контроллера


Насколько знаю, IDA умеет в ARM, но никогда не смотрел, какой у нее выхлоп декомпилятора конкретно для ARM. Надо признаться, что на пример с MIPS она не очень хорошо управляется. Однако для x86_64 их декомпилятор остается лучшим из лучших.
Я привык пользоваться каким-нибудь r2/Cutter или Ghidra.

>Есть еще момент что прошивка криптованная


Вероятно, оно так и будет: вытаскивать из себя закриптованный бинарник в рантайме. Однако я не совсем представляю как это должно выглядить для ARM.

>Длинно и путанно я наверное объяснил и очень сумбурно, но как есть теперь


Все хорошо, анонче, спасибо!

>>481656

>Но "хардварь секьюрити" это наверняка более обширная тема, впрочем фиг поймешь что имел в виду тот анон.


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

>Ага


На Patchwork время от времени захожу, иногда бывает так, как я и сказал.
659 481787
>>481686
Я опять сумбурно буду. Например возьмем систему санкционирования доступа BMW, третьего поколения. CAS3 старый, добрый. Его давно весь изломали до основания. Применен мотороловский( фрискейл) MC9S12DG512, например с маской 0Y15. Секьюрный MCU, микропрограмма состоит из криптованного флэш, епром. Прочитать его можно многими программаторами, например R270. На него осуществляется комплексная атака, я тыкал осциллографом во время подлома, картина интересная. Полученные файлы были расковырены и появилась возможность скорректировать VIN, пробег, записать ISN (ключи моторного и GWS) после любой корректировки утилита пересчитывает крипту, вывешивает флаги что все "ОК" Сравниваешь бинарники и видишь характерные лесенки. Большую роль в успешном реверсе этой серии микроконтроллеров сыграло то, что криптованных там три модели и 15 масок примерно, а открытых куда больше. Плюс нервное напряжение, когда я первый раз "усыпил" BMW снеся флэшку CAS3 у меня голова заработала интенсивно. При этом не криптованные (без буквы S) после 9 могут быть тоже закрываться на чтение, въебываются glitch атакой. Программатор подает питание, через определенное время на ногу кварца 16 мгц дают 8, он замедляется, потом генерацию вообще срывают, происходит странный танец с питанием и ресетом процессора, в итоге он переходит на темную сторону и читают на 16 мГц. Я не знаю точно, выдергивают с него пароль или просто вдалбливают что PassOK. Кстати реверс прошивки порой и не нужен, например при попытке клонирования, т.н. "Отлома" устройства максимально дешево и с возможностью официального обновления ПО. Но это старая сказка, большинство серьезных чипов имеют номера и в базе разраба все есть и они онлайн команды kill засылают. Кирпичил так один прибор на NXP)))
660 482482
stm32 тред как-то умер, поэтому спрошу тут.

Есть FreeRTOS и нотификация таска из интеррапта, примерно вот так — https://ideone.com/sTwLFW

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

Проблема в том, что xTaskNotifyStateClear почему-то не работает. Он возвращает pdTRUE, что заклирил какие-то нотификации, но следующий за ним вызов ulTaskNotifyTake всё равно возвращается мгновенно из-за ранее пришедшего оповещения.
В итоге мне приходится делать while (ulTaskNotifyTake(pdTRUE, 0)){} вместое StateClear, что немного некрасиво.

Других АПИ для сброса я чего-то не нашёл. Я что-то не так понимаю, наверное, но как мне добиться нужного мне поведения человеческим методом, а не так топорно?
661 482527
>>482482
Наверное, вопрос отменяется, есть ulTaskNotifyValueClear, просто у меня слишком старая версия ОС в проекте, где такой функции ещё не завезли, а StateClear вообще другое делает. (Cраный куб, мог бы и новое качать, а не из 2017 года версию, сам проект создавался буквально пару месяцев назад).
662 483358
>>314976 (OP)
Парни, не сочтите за наглость.
Киньте за щеку кейгеном для IAR.
Для STM8 надобно. Там лимит сейчас 4k кода всего.
663 483367
>>483358

>Для STM8 надобно


Там же халявный Cosmic без ограничений есть жы!
664 483370
>>483367
Спасибо, но Cosmic он же не дружит с IAR? Надо юзать STVD получается? Я только вкатываюсь. Пытаюсь. Я поставил Cosmic.
665 483371
>>483370

>Надо юзать STVD получается?


Да. Он тоже халявный.
666 483377
>>481345
>>481391
Миландр делал несколько фич аппаратной защиты:
https://habr.com/ru/company/milandr/blog/518138/
зарубежные аналоги тоже упоминаются.
>>481445
Можно попробовать, но скорее всего в утиль.
Была такая хуйня с ПЛИС, которую пиздануло повышенным напряжением питания - жрала 5 Вт вместо 0,5, грелась как печка, один или несколько выводов закоротило.
Поставил радиатор, работал так несколько дней - мощность постепенно упала в 2 раза (в первые минуты и часы больше, потом меньше), но КЗ осталось.
554754257445477r.jpg63 Кб, 728x579
667 489549
Как во FreeRTOS проверить: запущена задача или нет?
https://www.freertos.org/vTaskGetInfo.html

Эта залупа поможет? Или есть что-то типа ПроверитьЗапущенаЛиЗадача()?
1528146844247.png439 Кб, 550x359
668 495325
Сап, хочу вкатиться после авр. Имеется такая стартовая плата (STM32-405STK) и программатор STlink V2 mini.
Всё что я нашёл - это спецификации самого контроллера к этой плате, больше ничего. Как шить это говно? В какой среде писать (на сайте есть демка для IAR, но она не запускается) и где брать SPL ко всему этому добру?
Чет разочаровывает пока пиздец, везде видел шизу по поводу всех этих армов, а как сам начал пытаться вкатиться - так даже не могу понять как демопроект на платку закинуть. ЧЗХ они там у себя в Олимексе делают, что к ней даже нихрена доков нету.
669 495333
>>495325

>и где брать SPL


Чел, уже много веков как все перешли на HAL&LL
670 495337
>>495325
Для avr ты должен был ставить атмел студию, в которой в комплекте должен идти гцц для армов. Вот им и компилируй. А шить можно хоть через st link utility, особенно если IDE не настроена. Через встроенный бутлоадер тоже можно шить, даже без программаторов.
671 495341
>>495337
Забыл упомянуть, что уже работал с ARM (но только отечественными) и юзал всегда кейл. Поэтому надеялся, что уже есть что-то привычное.

> А шить можно хоть через st link utility, особенно если IDE не настроена.


Эту утилитку уже скачал, непонятно как шить, если на плате вывод JTAG для их нативных программаторов от OLIMEX. Надо перепрошивать ST-link в J-link и смотреть распиновку житага?

> Через встроенный бутлоадер тоже можно шить


Его вроде нету.
>>495333
Можешь на пальцах объяснить, в чём отличие? Да и эта макетная плата тоже не из нашего времени, а из 2014 года.
672 495342
>>495341
Swclk к tck, swdio к tms, землю к земле.
Для миландров тоже работало.
Самое простое - скачать stm32 CubeIDE, там все идет из коробки. Даже если пересядешь на более адекватную ide, куб удобен для раскидывания пинов.
LL - это современный SPL.
HAL - это высокоуровневая надстройка над LL типа ардуины на минималках со всеми вытекающими плюсами и минусами, автоматически генерируется кубом. В критичных к быстродействию местах лучше не использовать.
Бутлоадер позволяет шить стм через uart1, замкнув соответствующий boot на землю или питание, в мануалах все есть. Прошивальщик - flash loader demonstrator.
673 495347
>>495342
Понял, благодарю.
А +3.3В обязательно подключать? Или если контроллер уже запитан то не надо (пик 1)?

> Бутлоадер позволяет шить стм через uart1


И для этого надо переставить перемычки boot0 и boot1 в единицу, а сам загрузчик уже зашит с завода получается?
Но обычно эти перемычки режима загрузки выглядят как переключатели, а у меня тут кнопки (пик 3 и 4), причем я только 1 нашёл (B0), похоже что B1 и WakeUp совмещены просто. Но как тогда переключать режимы загрузки, каждый раз зажимать кнопки чтоли?
674 495348
>>495347
быстрофикс
Перепутал местами B1 и B0.
675 495354
>>495341

>Забыл упомянуть, что уже работал с ARM (но только отечественными) и юзал всегда кейл. Поэтому надеялся, что уже есть что-то привычное.


Конечно всё есть. Вполне можно пользоваться одной средой и для миландра и стм и авр, я так и делаю и все хорошо. Пишешь мейкфайлы, можно симейк и все везде более-менее одинаково работает. Можно и кейл использовать, если так больше нравится.

>Надо перепрошивать ST-link в J-link и смотреть распиновку житага?


Антон выше правильно написал. Достаточно подключить только SWD, не обязательно задействовать JTAG. Смотри мануалы.
Если хочешь использовать программку от ст, то очевидно перепрошивать не нужно, даже нельзя. Перепрошивают только чтобы использовать ПО от сеггера. На счёт подсоединения питания - зависит от программатора, некоторые по этому напряжению берут свои лог. уровни. А загрузчик, если что, находится в масочном ПЗУ, т.е. не перепрошиваемый даже. Все как и у миландра.

>>495342
У этого бутлоадер и через USB может работать.
DF.JPG82 Кб, 633x786
676 496452
RK3566 и RK3568 это сильно разные чипы? Будет ли прошивка (убунту гну/линупс ядро) с 68 работать на 66? Есть китайский ТВ бокс с охуевшими характеристиками (8/128) и ценой миска риса и прошка от уебичного (2/8) девбоарда с ценой в анус и почку. Какой шанс что аппартаное ускорение, HDMI и ethernet с Usb 3.0 заработают?
677 497635
Аноны, начал вкатываться в FreeRTOS, пока просто начитываю инфу и ± все понятно. Но как в ртосе работают прерывания от других устройств, помимо таймера с менеджером задач? Там все как обычно, я полагаю?
678 497651
>>497635
А необычно это как? В прерывании можно разбудить нужную задачу, например.
679 497653
>>497651
Мне почему-то кажется что прерывание может нарушить целостность хода выполнения и мб данные какие повредить.
А что если Hard Fault вылетит во время работы? Система продолжит работу? Из-за чего вообще обычно Hard Fault происходит?
соре за тупые вопросы
680 497654
>>497653
Но ведь прерывание именно для того и предназначено, чтобы прервать выполнение и сделать какое-то срочное действие. Никакие данные оно само по себе не повреждает, ни с ОСРВ, ни без неё, всё зависит от прокладки между микроконтроллером и клавиатурой. freertos имеет специальные функции для вызова из обработчика, просто делай как написано в доках и примерах.
681 497655
>>497653
Можешь в hardfault ресетнуться, например, почему бы нет, но по мне это нездоровая хуйня. Происходит от нарушения правил работы с данными, доступа к неправильным адресам, попытки затереть код программ во время выполнения, вызвать математические функции с выключенным float-сопроцессором. Over 9000 причин.
682 497657
>>497654
Понял, пойду дальше изучать, на выхах попробую что-нибудь простенькое сделать типа моргалки.
>>497655
Вот в отсутствии этой конкретики вся проблема, пока что я понимаю только что если программа сваливается в Hard Fault - значит я скорее всего что-то не так сделал с памятью или как-то не так обратился к ней.
Хорошо бы ещё как-то уметь обрабатывать этот случай, но я хз как. Есть какой-то универсальный способ вызвать ресет программно? Или нужна конкретика в виде модели контроллера?
683 497658
>>497657

>Вот в отсутствии этой конкретики вся проблема


В документации все есть. Или посмотри в книге у Джозефа Ю.
684 497659
>>497657
NVIC_SystemReset(), не?

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

В отладчике CubeIDE например всю последовательность вызовов до попадания в Хард показывает. Ну некоторые еще printf'ом содержимое регистров и указателя стека выводят, чтобы потом узнать, что за данные и на каком адресе вальнулось. В книжках есть такие примеры, у Джозефа Ю, например.
685 497708
Аноны, работал кто с Fatfs?
Проблема такая. Сделал для начала тестовый проект, там просто настраивается контроллер SPI, монтируется моя флешка и по uart выводится инфа о количнстве папок в корневой директории и свободное место на флешке. Все работает отлично при каждом включении устройства.
Создал другой проект, где сделал все тоже самое что и в прошлом, но только обрабатываю определенные файлы с флешки, и все работает пока не отключить питание устройства. После включения-выключения диск не монтируется и выдает FR_NOT_READY, при этом при ресете все норм.
И самое странное, что для того чтобы диск опять начал читаться, мне надо прошить в контроллер мой первый проект, а потом зашить второй проект. И тогда второй проект будет работать стабильно, пока не отключить питание.
Сначала думал, что перед выключением питания надо закрывать все открытые файлы и размонтировать диск, но это не помогло. Как я понял, ошибка появляется на моменте вызова disc_initialize().
В чем может быть проблема?
686 498167
>>497658
>>497659
А в Cortex-M1 сильно отличается от Cortex-M3?
Могу я брать инфу из книги Джозефа Ю если использую Cortex-M1?
687 498381
>>498167

> Могу я брать инфу из книги Джозефа Ю если использую Cortex-M1


Можешь. Даже если что-то сразу не пойдёт, это будет для тебя стимулом залезть в RTFM, напрячь мозг и разобраться в проблеме самостоятельно.

Но я бы лучше нашёл книжку по Кортекс-М0, они с М1 почти одинаковые.
688 498511
>>314976 (OP)
Кто нибудь паял атмегу проводами? Хочу сделать собственную отладочную плату на дощечке, только х.з. как аккуратнее подпаяться к тонким smd выводам и заодно исключить их замыкание.

Может быть как нибудь гребенкой попробовать, четные выводы загнуть чуть вверх, нечетные вниз, и просунуть какой нибудь изолирующий лист между ними как можно ближе к корпусу микросхемы, чтобы толстая пайка проводов не дотягивалась до соседних?
689 498562
>>498511
Ты адово заебешься паять это говно, а потом оно отвалится от первого пука или не будет работать на высоких частотах из-за паразитной индуктивности проводов.
Сделай отладочную плату ЛУТом аля пикрил, или купи китайскую макетку для LQFP.
На самом деле проще купить или с али заказать.
atm22222.JPG21 Кб, 824x435
691 498666
>>498562
Дорого готовую плату покупать. И плату для самостоятельной пайки тоже нет смысла, у меня только ЭПСН под рукой.
Хотя вот это >>498590 (вторая ссылка) интересно конечно, по цене ещё куда ни шло.

По сабжу - сегодня отпаял атмегу128 с ненужного устройства. Первый час или два пытался разными способами - сначала пытался по одной ножке паяльником и иголкой, потом лезвием. Ничего не получалось. После этого попробовал соорудить квадратный каркас из проволоки чтобы прогреть им все ножки, но тоже не прокатило, он почему-то никак не хотел греться.
В итоге всё же нашел приемлемый способ - продел под загибами ножек эмалированный провод примерно 0.5, прогрел их паяльником и начал потихоньку тянуть проволоку на себя. За несколько секунд все ножки одной стороны ровно отошли. Тянул не со всей дури а аккуратно, чуть наискосок, чтобы ножки отходили по одной.
После этого случайно одну оторвал пинцетом пытаясь выровнять, но она не критичная судя по даташиту.

После отпайки отогнул на одной стороне ножки гребенкой - 8 вверх, 8 вниз. Таким образом между ними получилось где-то по одному миллиметру свободного места. В принципе должно хватить чтобы подпаяться. Но понимаю, что будет геморно.
692 498685
>>498666

> час или два


> паяльником и иголкой


>отогнул на одной стороне ножки гребенкой - 8 вверх, 8 вниз


>подпаяться. Но понимаю, что будет геморно


Еб твою мать, блядь, еб твою мать.
Атмеги по-нищебродски отпаиваются так: электроплита включается на единицу или двойку, на ней прогревается плата градусов до 100, и прямо на микросхему светишь прикуривателем. Электроплиту можно заменить утюгом, зажатым в тиски вверх ногами, у него даже термоконтроль есть.
https://www.youtube.com/watch?v=JKDZRzR1eU0
"Сборка устройства производится в обратном порядке".
693 499555
Что можно собрать на базе Арм-а? Насколько это затратно по деньгам? Есть необходимость в автоматизации процессов. Только вот ПЛК стоят очень дорого, на мой взгляд. А что если использовать промышленную электронику, датчики и прочее, но управлять ими не с помощью ПЛК, а используя что-то другое? Тем более, что у меня нет никакого желания использовать языки, которыми программируют ПЛК. Мне кажется, что с помощью языка общего назначения у меня будет больше свободы. Куда вообще копать? Не знаю за что браться, что читать. Контроллеров всяких куча.
694 499557
>>499555

>Что можно собрать на базе Арм-а?


Если без уточнений, то всякое, в зависимости от Арм-а. Молоток, микроскоп, мигалку светодиодом, обработку сигнала для радиолокатора и прочее.

>А что если использовать промышленную электронику, датчики и прочее, но управлять ими не с помощью ПЛК, а используя что-то другое?


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

>Куда вообще копать? Не знаю за что браться, что читать. Контроллеров всяких куча.


Вряд ли с задачами ПЛК ты упрешься в быстродействие и даже объем памяти. Поэтому единственный критерий выбора это наличие необходимых интерфейсов. И вовсе необязательно использовать ARM, даже атмеги тоже может оказаться более чем достаточно.
695 499560
>>499557

>Только с чего ты взял что будет быстрее сделать свой вариант ПЛК, чем взять готовый, пусть и ущербный?


Не быстрее, но дешевле. ПЛК очень дорогие и не являются универсальными контроллерами. Они решают только свою специфическую задачу.

>И вовсе необязательно использовать ARM


Согласен. Тогда такой вопрос. С чего вообще начать? Есть опыт программирования на языках общего назначения. Может с ардуино? Цель набраться опыта и попутно автоматизировать свои задачи.
696 499571
>>499560
Какую же специфическую задачу решает cosesys например?
697 499581
>>499560

>Не быстрее, но дешевле.


Если ограничиться микро-ПЛК в виде программируемых реле, то не факт что дешевле будет.

>ПЛК очень дорогие и не являются универсальными контроллерами. Они решают только свою специфическую задачу.


Релюшками щелкать могут, какие задачи тебе еще нужны? Тем более любой "контроллер" не будет универсальным, у какого-то один набор интерфейсов, у какого-то другой, объем памяти различается и прочее.

>Может с ардуино?


Станешь ардуинщиком.
698 499691
>>499581

>Станешь ардуинщиком.


Что это значит? Советуют начинать с AVR. Ардуино же на AVR.
699 499746
>>499691
Там может и стоять авр, но ты в нем толком и не разберешься т.к. там куча абстракций.
Наверное, все от твоих целей зависит, если хочешь здесь и сейчас что-то написать под контроллер – то ардуино подойдёт.
700 499763
>>499746
Что лучше для обучения? Для ардуино много обучающей информации, много всяких железок. Как мне кажется для обучения должно хорошо подходить. Я не боюсь сложности, просто не знаю с чего начать.
701 499767
>>499763
Могу только за себя сказать, но я до сих пор учусь.
Начал вкат с авр атмеги 128 кажется т.к. она шла на макетной плате. Все что там было нужно - это немного базовых знаний по микропроцессорам, а остальное находилось в документации.
Норм варик взять какую-нибудь отладочную платку (evaluation board) с популярным контроллером и ковырять её. Сначала ставишь себе цель, что хочешь сделать в рамках возможностей платы, потом смотришь в документации что для этого нужно и как это сделать. Периодически гуглишь.
702 499773
>>499767
Учиться нужно всегда. Нет таких кто все знает и умеет. У меня есть задачи, которые нужно автоматизировать, но я не знаю что для этого взять. Например, мне нужно измерять PH и получать эти данные на компьютер и смартфон. Еще нужно получать температуру и влажность, управлять электромагнитными клапанами и кнопками на разных реле. На работе есть всякие ПЛК и программируемые реле, но никто не даст мне обучаться на них, они в работе, а покупать для себя такое нереально из-за дороговизны. Да и не тянет меня к таким железкам, там какие-то дурацкие языки программирования. Не знаю какое железо подошло бы мне.
703 499780
>>499773

>Например, мне нужно измерять PH и получать эти данные на компьютер и смартфон.


Если я не ошибаюсь, то PH это в первую очередь электроды, а во вторую какой-то усилитель и АЦП. Если у тебя нет для этого доступных

>промышленную электронику, датчики и прочее


то на алиэкспрессе продают все это где АЦП с I2C выходом. Не знаю насколько оно нормальное, но продают. Если все что нужно это получать данные, то по минимуму достаточно смастерить переходник USB-I2C. Можно вовсе в HDMI воткнуть, там DDC это I2C и есть. По этому пункту кое-что можно сделать без всяких микроконтроллеров.
Если брать промышленные, то там обычно RS-485, тем более микроконтроллеры не нужны, берешь готовый переходник USB в RS-485 и готово.

>Еще нужно получать температуру и влажность


Аналогично, можно подцепить через I2C, а промышленные также с RS-485 можно взять.

>управлять электромагнитными клапанами и кнопками на разных реле.


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

>нереально из-за дороговизны.


Я бы не сказал что программируемые реле особо дорогие. Если будешь сам такое делать, причем не тяп-ляп, то тот же порядок по стоимости получится. Но программное обеспечение там конечно бестолковое, впрочем, АСУ-шники нахваливают и говорят что только так и надо.
704 499825
>>499780
Ты мне предлагаешь подключать напрямую к компу и юзать Linux/Windows API чтобы обрабатывать сигналы в удобочитаемый вид? По любому нужна железка, которая будет интерфейсом между электроникой и компом. Потому что электроники много и потому что так удобнее.
705 499828
>>499825
Если "датчики" не промышленные, то из интерфейсов там скорее всего будут I2C, SPI, аналоговый выход, ШИМ может быть, 1-Wire бывает иногда, остальные варианты встречаются реже. Вполне вероятно что получится ограничится одним I2C или SPI. В таком случае достаточно сообразить один универсальный переходник. Как написано выше, такое можно сделать и без микроконтроллеров.

С промышленными железками может быть еще проще, переходников USB в RS485 полно разных на любой вкус.
706 500207
Почему FreeRTOS нету на Cortex-M1? Есть на М0 и на М3, а на М1 ничего не могу найти. Мб я тупо не вижу этого?
Или есть какие-то архитектурные особенности, которые не позволяют реализовать ртос на М1 ядре? Если их нету, то можно ли как-то портировать ртос для работы на М1 ядрах? Что для этого нужно?
707 500211
>>500207
https://developer.arm.com/documentation/ka001145/latest
Это одно и то же за исключением:
1) В m1 отсутствует энергосберегающая фигня в виде WFI, WFE, SEV;
2) Может отсутствовать SVC.
Первое просто учитываешь и не используешь, а второе в случае отсутствия действительно создает заметное препятствие использованию операционной системы.
Если тебе это применительно 1986ВЕ1Т, то SVC там есть, но есть еще и еррата применительно к SysTick. Оно просто не работает нормально на высоких тактовых частотах, причем это вроде как не исправили в новых ревизиях. В результате так просто оно не заработает, нужно менять SysTick на другой таймер. И вообще этих 1986 может больше не быть никогда.

Да и зачем тебе FreeRTOS? Мне как-то не требовалось, в том числе с TCP/IP без всего этого обошелся.
708 500212
>>500211

>Это одно и то же за исключением:


То есть м0 и м1 это одно и то же за небольшими исключениями. м3 уже заметно отличается.
709 500238
>>500211
Удивлен, как точно ты определил контроллер. Да, работаю с 1986ВЕ1Т, про еррату знаю, для начала хотя бы потестить все и запустить на частотах до 25МГц, когда системный таймер нормально работает. Я вкатываюсь только, вот и интересно ртос пощупать, и возможно текущие проекты в будущем под нее переписать.
Если ты уже работал с этим контроллером, ты случайно не работал с SPI или контроллером DMA?
Сейчас осваиваю их и есть вопросы по этим блокам, хотя и по всему остальному тоже много чего не понятно, а местный локальный форум, где более-менее все объясняли, прикрыли после известных событий. Как раз когда я начал вкатываться.

Короче, я могу просто скачать ртос с оф сайта для СМ0, открыть Quick Start Guide и попытаться настроить это все под СМ1?
710 500286
>>500238

>Удивлен, как точно ты определил контроллер.


С этим не так много вариантов.

>SPI


Используется такое. Только скорее в прошедшем времени.

>DMA


Было дело. Но оно там тормозное, зато у кучи периферии есть FIFO довольно большого объема, поэтому обычно не особо оно там нужно.

>Короче, я могу просто скачать ртос с оф сайта для СМ0, открыть Quick Start Guide и попытаться настроить это все под СМ1?


Вероятно все так.

>Как раз когда я начал вкатываться.


Тут выкатываться пора уже. Только куда?
711 500326
>>500286
Если имел дело с SPI, не знаешь как на этом контроллере рассчитать частоту SPI грамотно? Работаю с fatfs, там у SPI есть максимальная и минимальная частота, она рассчитывается в зависимости от частоты ядра. В документации вроде написано, но я так и не понял как её рассчитать, ибо там в формуле значения откуда-то с потолка взяты.
А по DMA сейчас больше всего беспокоят 2 вопроса:
- при вызове прерывания, как определить какой канал DMA это прерывание вызвал? (сейчас я проверяю ControlTable каждого используемого канала);
- как грамотно выйти из прерывания по окончанию работы канала DMA? Не понятен порядок действий, которые надо сделать после переинициализации канала, чтоб грамотно выйти из прерывания.
Ну а по поводу вката, тут я ничего поделать не могу, если на работе в основном только такое используется. Мне еще повезло с этим работать так как там есть намного хуже и древнее вещи. А по поводу нехватки или отсутствия микропроцессорной комплектухи пока тревогу вроде не бьют.
чел, если ты правда работал с этим и не против если тебя периодически будет заебывать вопросами студентота в моем лице, я бы перекатился в телегу, если конечно ты не против
712 500391
>>500326

>Если имел дело с SPI, не знаешь как на этом контроллере рассчитать частоту SPI грамотно?


В документации разве в этом месте ошибочно написано? Прям формула есть, если ты про частоту тактового сигнала.

>А по DMA сейчас больше всего беспокоят 2 вопроса:


Не помню уже. На деле вся эта хрень с периферией не так много времени отнимает, по сравнению с остальным.

>А по поводу нехватки или отсутствия микропроцессорной комплектухи пока тревогу вроде не бьют.


А надо бы задуматься.
1514615507058.png224 Кб, 840x752
713 500409
>>500391

> В документации разве в этом месте ошибочно написано?


Ну я нихрена не понял, что мне надо сделать, если у меня частота 80 МГц и SSP(SPI) в режиме мастера?

> по сравнению с остальным


Например?

> А надо бы задуматься


Так тревогу не бьют потому что уже есть запасные варики и сама компания пишет что пока все норм.
714 500429
>>500409

>что мне надо сделать, если у меня частота 80 МГц и SSP(SPI) в режиме мастера?


Ничего. На этой странице написано что тактовая частота контроллера SSP должна быть в два и более раз больше чем частота клока на выходе SPI. Нижний предел тоже ограничивается. Тактовая частота (HCLK) на модуль SSP идет через делитель, который задается в регистре SSP_CLOCK, при особой необходимости можно поделить им.
По самому значению тактовой частоты смотри следующую страницу.

>Например?


Слежение за целью с обработкой изображений, сопутствующие задачи.

>Так тревогу не бьют потому что


Потому что всем пофигу может быть?

>уже есть запасные варики


Особенно когда уже проведены почти все испытания с 1986 и кучей остального отвалившегося, заказчик уже почти все принял, вот-вот серия...

>и сама компания пишет что пока все норм.


Ну это логично. Как в анекдоте.
715 500431
>>500429

> тактовая частота контроллера SSP должна быть в два и более раз больше чем частота клока на выходе SPI


Я несколько раз уже прочитал эту строчку и не могу понять что тут написано. Контроллер SSP должен работать на частоте, в 2 раза превышающей его собственную? Это как?
Что есть что? Все что у меня есть – это тактовая частота HCLK и этот делитель SSPCLK, который в регистре CR0 находится, что описано на след странице.
А как вход и выход посчитать? Из чего формируется Fsspclkout и Fsspclkin?
И по каким критериям надо делитель SSPCLK подбирать?
На данный момент я подобрал частоту методом тыка для 16МГц и все работает. Но сейчас 16МГц не хватает, а при повышении частоты контроллера (и пропорционально частоты SSP офк) SD карта перестает отвечать на команды и не хочет инициализироваться, причем только после выключения питания. До этого момента она работает.
716 500433
>>500431

>Контроллер SSP должен работать на частоте, в 2 раза превышающей его собственную?


Частота SSP_CLK это от которой тактируется модуль SSP.
А частота SSPCLK это то что идёт с ножки микроконтроллера, если он ведущий. Возможно тебя это запутало.

>делитель SSPCLK,


Лучше не делить.
717 500434
>>500433

> Частота SSP_CLK это от которой тактируется модуль SSP.


Он может тактироваться от чего-то, кроме частоты CPU? По сути ведь в моем случае обе эти частоты равны? У них ведь одинаковый источник частоты? Просто в каких-то случаях я могу что-то из этого делителем менять.
А что за Fsspclkout и Fsspclkin? Откуда брать их значения?
В моем случае есть 2 варианта частоты SSP:
FCLK_FAST и FCLK_SLOW. На низкой частоте идет инициализация SD карты, на высокую частоту SSP пепеключается когда SD карта вышла в рабочий режим. Но какие они должны быть я так и не пойму.
718 500436
>>500434

>Он может тактироваться от чего-то, кроме частоты CPU?


Оно тактируется от HCLK, деленной на делилку из регистра SSP_CLOCK. Но делить ни к чему и лучше не делить.

>А что за Fsspclkout и Fsspclkin?


Это частота SSPCLK, того что идёт с ножки микроконтроллера. Out это когда микроконтроллер ведущий и сам даёт сигнал на эту ножку. In - когда микроконтроллер ведомый. Там у этой формулы в скобках же все это написано.
719 500437
>>500436
Вроде разобрался, по крайней мере с минимальной частотой, благодарю.
А ты когда под 1986 писал юзал SPL? Если да, то какой версии лучше пользоваться? Там просто есть какие-то паки от сообщества, а есть официальные.
720 500438
>>500437

>писал юзал SPL?


Да, конечно. Нет никакого смысла не использовать.

>Там просто есть какие-то паки от сообщества, а есть официальные.


Официальные к сожалению не работают с gcc. Поэтому использовал https://github.com/eldarkg/emdr1986x-std-per-lib В качестве IDE со всякими микроконтроллерами использую Qt Creator вместе с симейком.
721 500447
>>500438
Сейчас пользуюсь тем же самым, но поставил ещё это https://github.com/StartMilandr/MDR_Pack_v6
Что можешь сказать по этому паку? Мне после прошлого вообще неудобно этим пользоваться, да и документации нету к этому паку, одному автору понятно что там как.
722 500490
>>500447

>Что можешь сказать по этому паку?


В первый раз вижу. Подозрительно выглядит. Действительно, хотя бы доксигеновскую пародию на документацию можно было изобразить.
Зато emdr1986x-std-per-lib это всего лишь адаптация официальной библиотеки под gcc.

А еще, паки это же про кейл? Этот момент в кейле как-то не здорово выглядит. Что мешает подрубить в свой репозиторий нужные библиотеки как субмодули? Ну или просто руками все скопировать.
723 500521
>>500490
Паки про кейл, да

> Что мешает подрубить в свой репозиторий нужные библиотеки как субмодули


Я пока вообще не разбираюсь в теории компиляции и просто в этом. Юзаю кейл так как там есть еще и пошаговая отладка, ну и до этого по учебе им пользовался.

> Что мешает подрубить в свой репозиторий нужные библиотеки как субмодули


Что можно почитать по этой теме, чтобы понимать как это сделать?
724 500586
>>500521

>пошаговая отладка


Оно очень редко нужно. Так-то оно во всем есть, что может в gdb, но всякое специфичное для микроконтроллеров есть не везде. Ну можно для отладки отдельно от IDE использовать Ozone от сеггера, там все есть.

>Что можно почитать по этой теме, чтобы понимать как это сделать?


Это я про субмодули git. Конечно не обязательно их использовать, но по моему оно тут было бы уместно. Также весьма желательно использовать хоть какую-нибудь систему контроля версий. И бэкапы всего этого делать, хотя бы на отдельный комп. Не знаю на счет тебя, но в конторах, занимающихся 1986ВЕ1Т, всем этим часто пренебрегают и не от большого ума.
725 500622
>>500586
Моя контора не исключение, гит появляется уровнем повыше.
Я пока вообще не представляю как что-то писать под контроллеры без IDE. Пользовался компилятором и гдб только по учебе когда консольные приложения писал. Для меня даже мейк файл проблематично сделать. Самое главное – хз как искать инфу по этой теме.
726 500882
Вижу тут есть аноны, работающие с отечественными ARM, а какие у нас вообще есть поставщики или производители отечественной продукции?
727 500908
>>500882

>производители отечественной продукции


https://mniirip.ru/node/4188 Тут перечень всей продукции, ну почти всей. Кое-где можно скачать бесплатно.
А если ты про то что не для военного применения, то не нужно оно.
728 501041
>>500908
Мда, не густо у нас, особенно с модулем ethernet вообще буквально несколько штук.
729 501472
Перекинул прерывания шедулера FreeRTOS с SysTick на аппаратный таймер. Вроде все работает но не пойму, какой приоритет должен быть у прерывания таймера?
В демках смотрю - там таймеру дается самый маленький приоритет, но почему? Если у SysTick'a по умолчанию приоритет - 1 (почти самый высокий в Cortex-M0, дальше только исключения Hardfault и NMI).
730 501475
>>500882
Миландр (1986) - самый крупный и адекватный производитель, фаблесс, производил чипы на X-Fab или TSMC, сейчас распродают остатки. Возможно, переедут на Микрон или в Китай, но на это нужна пара лет. Могут слиться, микросхем у них много, весной там какая-то нездоровая хуйня происходила, вроде как директор свалил. Если у кого есть инсайды, поделитесь.

Микрон - RISC-V МК32 Амур, бескорпусной чип на большой плате, свое производство, первые будут в октябре-ноябре, обещают небольшую стоимость. Инфы мало, обычно работают с крупными заказчиками.
У одного деда на сайте есть распиновка.

НИИЭТ - 1921ВК и 1946ВК, cortex-M4. Скорее всего фаблесс и тоже будут переезжать. Работали с ними из под iar, адекватные МК, есть репозиторий на bitbucket.
Еще есть куча 8031, 8051 и mcs-96 в металлокерамике, возможно, какие-то делают у нас.

Ангстрем - старый 8-битный 1867ВЕ1, свое производство.

НИИМА прогресс - аналоги stm32 в bga, даташитов нет, не знаю, где производятся.

Можно еще на ecworld.ru покопаться, там почти все есть.

Я бы рассчитывал на Микрон и НИИЭТ в следующем году, и закладывал китайские кортексы как запасной вариант. Там их хуева гора - chipsea, wch (говорят, что аналог stm по регистрам), artery (m4), cw32, mm32, linko, zetta, vango. Стоят в разы дешевле stm/nxp, многие прямо сейчас выкатывают свои ide.

>>500447
О, я тоже с ним работал, только для iar. Скачай прогу milandrPLL и посмотри примеры. Еще был сайт startmilandr, он закрылся, но на странице автора есть бэкап.
731 501476
>>501475

> весной там какая-то нездоровая хуйня происходила, вроде как директор свалил


Типа того, только не понятно, как это мешает дальше выпускать продукцию. Странная проблема какая-то, перекрытие поставок из Тайваня кажется куда более серьёзной проблемой.
Есть ещё НИИСИ – Комдив-МК, у них вроде тоже свое производство.
Тоже рассчитываю на НИИЭТ с их 1921ВК, на неделе наверное позвоню им и узнаю что к чему.
Нормальный ли у этого 1921ВК функциональный аналог? Там LM4F132 от TI, но инфы по нему маловато.
shuu-Illust-artist-art-красивые-картинки-7487575.jpeg610 Кб, 1338x2048
732 501781
Анонче, реально ли портировать проект из Keil v4 в CubeIDE на работе нет лицензии на кейл, но прошлый прогер додумался наклепать прошивку именно в нем? И еще: подскажи максимально легкую и бесплатную RTOS. В распоряжении STM32L100RCT6 с 16 Кб ОЗУ на борту - freeRTOS вряд ли подойдет, потому что сама по себе она отжирает около 10 Кб + проект подразумевает вафлю, логирование, измерения, лору, юсб, отображение данных на простом дисплее и хз че там еще в будущем. Думал поставить uc\os, но в какой то момент заметил что она не бесплатна для коммерческого использования если честно хз, не похуй ли, но судя по трепетному отношению к кейлу - не похуй.
733 501783
>>501781
Си есть си, если там ничего не нахуеверчено
Protothreads не хватит?
734 501784
>>501781

>CubeIDE


Это эклипс с довеском, а компилятор там обычный gcc, не путай. Мейкфайлы пиши лучше.

>RTOS


А смысл? Так ли оно нужно?
735 501796
>>501781
bugurtos довольно легкая и понятная

The name BuguRTOS comes from Butthurt, Frugurt and RTOS.
736 501798
>>501783

>Си есть си, если там ничего не нахуеверчено


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

>Protothreads не хватит?


Вполне возможно что и хватит. Спасибо анон. Хабр еще подсказывает Tasklet и Workqueue.

>А смысл? Так ли оно нужно?


Опыт говорит что если надо делать хотя бы три-четыре задачи параллельно, то лучше сразу ставить ртос и не ебать себе мозг в будущем с сопровождением и прикручиванием новых перделок.
737 503187
Здарова
Кто-нибудь работал с китайскими mindmotion (mm32)?
Или с чем нибудь другим - geehy (apm32), wch (ch32), chipsea (cs32), vango, cw32, etc?
738 503215
>>503187
вон у этих спроси: https://habr.com/ru/post/682172/
739 504110
Некогда вдаваться в подробности. Накидайте по скоряку гайд о молниеносном обучении погроммированию MCIMX257 от NXP. Внутре ARM9. Хочу шоб оно распознавало картинки с угрожающей скоростью и крутилось на линуксе. Гайды по быстрому обучению линуксу тоже подкиньте.
740 504259
>>504110
Чо молчите как в рот говна набрали? В чом погроммировать ети камни? SDK какое есть? Примеры, ходы?
741 504468
>>504259
Ты дурак? Иди нахуй отсюда.
племена-дрон-без-перевода-twitter-4692392.jpeg149 Кб, 500x600
742 505308
Анонче, подскажи что изучить и что прочитать по архитектурам и паттернам embedded приложений? Относительно недавно окончил ВУЗ, устроился на первую работу и понял что мало понимаю, как грамотные программисты строят приложения, решают типовые задачи, делают код легко сопровождаемым и т.д.. Анон, как стать смешариком в мире встраиваемых систем?
743 505309
>>505308

>по архитектурам и паттернам embedded приложений?



лапша во всю ивановскую. Железячники не особо часто на самом деле умеют нормальный код писать.

вкуривай обычный C. Из того, что повсеместно распространено в эмбедщине и не особо в обычном софте - volatile, weak функции, ассемблерные вставки.
744 505312
>>505308
У эмбеддера два союзника - конечный автомат и очередь событий. Задрочишь эти два паттерна, научишься их применять в разных ситуациях и будешь великолепен.
изображение.png136 Кб, 347x276
745 505320
>>505312

>конечный автомат

746 505330
>>481345
>>481408
как успехи? мне тоже интересен реверс прошивок МК, особенно армовских.
747 505431
>>314976 (OP)
СТМо-тред ушёл вообще хз куда, потому пишу тут.

Отправляю в USART по DMA и хочу получить прерывание от DMA по передаче всех байтов от DMA. Код тут https://pastebin.com/kaBQX3VH .

Байты уходят, в терминале "Transmitted_by_DMA\n", но прерывания нет. Приэтом бит в ISER0 стоит, в ISPR0 стоит, флаг события в ISR самого DMA стоит, но прерывания не происходит. ЧЯДНТ?
748 507023
>>314976 (OP)
Сап, радиолухи. Я снова с ADuC7061. Я правильно понял, что для погроммирования необходим J-Link\ULink\etc?
Почему STM-овцы не сделали свой программатор универсальным для всех армов?
749 507039
>>507023

>Почему STM-овцы не сделали свой программатор универсальным для всех армов?


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

кетайский stlinkv2 спокойно перешивается в jlink, есличо.
750 507046
>>507039

>stlinkv2 спокойно перешивается в jlink, есличо


Где ты был раньше? Я уже заказал у китайцы jlink10 за 1300. Приедет к середине ноября. А я пока либы буду пытаться скочать с AD. А то они со штатным впн от огнелиса, пишут, шо - ХУЙ ВАМ ПО ВСЕЙ РОССИЙСКОЙ МОРДЕ, А НЕ ВОЗМОЖНОСТЬ СКАЧАТЬ!!! АЗАЗА!!
Я бы не связывался с ними, но уж больно охуевший ADC у них встроен в этот чип. А я разжился десятком нормирующих преобразователей от Овна, с ними внутре.
751 507331
>>314976 (OP)

>SAM3 и ATSAM91


Нахуй вы идете в такие шараги?
752 507333
>>378460

>что хал и прочие библиотеки


Расскажешь как будешь ебаться с битиками когда запилишь что-то сложнее SPI и I2C, хотяб ethernet или USB.
Знаю я таких, подельщиков. Начинают рассказывать про дыры в библиотеках и "что они всё пишут сами, если надо" или "если мне надо будет, могут написать функцию работы с портом, и передавать туда данные по указателю", или вообще "если надо будет работать работать с портом из нескольких функций, я реализую очередь, в котором будут данные складываться и отправляться когда порт будет свободен"

Потом такие ребята ВНЕЗАПНО для себя узнают что очереди уже реализованы в RTOS, драйверы уже есть тоже во многих HAL и LL и даже в тех же RTOS.
Но блядь, я из треда в тред вижу как каждый "собирается" сделать свой SPL/OS/RTOS/SDK/LL/HAL/CMSIS, только через некоторое время зайдешь в его git или спросишь, а на самом деле нихуя нет, наверное дошло.
753 507334
>>507046
Лучше иметь 2 программатора. Я серъезно. У меня этих программаторов дохуяллион.
754 507476
поясните по хардкору, почему Google для миллиардов своих устройств (смартфонов Pixel) перешёл с ARM на RISC-V?
RISC-V уже готов для продакшона? или в больших объёмах ARM НАСТОЛЬКО дороже, что выгоднее налабать SoC на коленке из опенсорцных IP и впихнуть консьюмерам (всё равно сожрут)?
755 507477
>>507476

> SoC


речь, конечно же, не про "основной" SoC, а про секьюрити SoC "Titan"
756 507480
>>507476

>про секьюрити SoC "Titan"


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

>из опенсорцных IP


Как бы RISC-V это не опенсурсные IP, а только общедоступная ISA. А сами IP RISC-V существуют какие угодно.
757 507481
>>507480

> Это просто микроконтроллер


со своей оперативой, хранилищем, и скорее всего RTOS
758 507483
>>507481

>со своей оперативой


Это у всех микроконтроллеров должно быть в том или ином объеме.

>хранилищем


Да, это не у всех бывает. Но не меньше чем у половины точно есть.

>и скорее всего RTOS


Будто что-то особое, требующее какого-то особого набора команд.
759 507485
>>507333
Так ты макакен, хули с тебя взять. Когда ничего не делаешь и только готовое берешь, это конечно очень легко и всем можно говорить что ты проффессионал, ПОДНЯЛ usb, ethernet, potoki на hal.
760 507486
>>507476
Полагаю risc v подходит для кастомных решений, потому что его легко настраивать. Arm все таки нужно лицензировать и согласовывать с барином каждый бит, а эту хуйню масштабируй, режь как хочешь.
761 507515
>>507485
Так тебя тоже можно макакеном назвать, хуле ты на АРМы полез, возьми да свой процессор сделай тогда. Пиздец, с какими я долбаебами сижу.

А по факту, я уверень что тут usb, ethernet только полтора анона, и то ради прикола а не в прод. Когда работаешь с ETH протоколами которые уже работают на 1000Гбит, да именно Гбит, то ты полюбому ну не сможешь ты потянуть это в одно рыло, это коллективная работа, т.е. готовые драйверы и ОС, это и есть по сути HAL.
А поднять, так это хуйня на постном масле - так. Диодиком мигнуть чтоль, битик передать? Я такое говно даже в резюме не вписываю если я просто побаловался с каким-то протоколом или периферией.
762 507516
>>507515

>А по факту, я уверень что тут usb,


я уверен

фикс
Интересный-космос-Всё-самое-интересное-фэндомы-Марс-7713305.jpeg548 Кб, 1920x1080
763 510416
Аноны, подскажите максимально легкую GUI либу. LVGL и TouchGFX избыточны для простеньких приборов с дисплеями 64x64 да и банально не факт, что они влезут в условные L100 или L151, а изобретать велосипед не хочется. Ну или на крайняк мб кто знает где почитать про то, как все-таки написать свою либу и не обосраться.
765 510430
>>510423
Спасибо анон. Попробую повкуривать. Хотя скажу честно, препарировать микропитона идея неочевидная для меня.
766 511879
Макакен вынужденный писать на HAL врывается в тред.
В меня база это Python. Попросили сварганить платку управления на МК, в итоге как ардуинодебил сделал железку на модулях, а код написал по заветам DRY и SOLID, пришедшие на проект "аксакалы" говорят что не понимают псевдо ООП и ваще бля.
Вы серьезно ебашите все в main.c? Кукуха не едет?
767 511931
>>511879
Интересную тему поднял. Но чувствую кончится срачем.
Писал бы на питоне, раз плата управления всего лишь.
Почему псевдо ООП?

>все в main.c


Это те кто пишет в структурной парадигме. У них в общем то и нет необходимости свои объекты и классы создавать, или их не больше трёх, поэтому можно реализовать все на функциях.
768 511936
>>511879
Если ты пихаешь ооп там, где оно не требуется от слова совсем – то до тебя правильно доебались.
Ну а в мейне только мейн обычно, остальное раскидано по модулям. Ну если обработчики прерываний короткие, то их тоже в мейне оставляю.
769 512110
>>511936

>Если ты пихаешь ооп там, где оно не требуется от слова совсем


Ты либо приводишь конкретный пример, либо идёшь нахуй школьник со своими общими фразами, которые ты не понимаешь.
Мимо
770 512140
>>512110
И много ты общих фраз видишь, чмонь?
Для поморгать светодиодом дохуя ооп надо?
771 512167
>>512140
не то чтобы "надо", но ничего этому не мешает так-то. Железячники обычно так себе программисты и не понимают, что во всем остальном ойти конструкции типа ledGPIO.toggle() - околостандарт индустрии, и не просто так.

чо б и нет-то? На плюсах если не хуярить абстрактных классов, оверхеда нет.
772 512168
>>512167

> ledGPIO.toggle()


Так это уже ооп чтоли, лол? Ну тогда я ниибаца ооп программист получается, а то я думал что ооп это всякие паттерны и прочая абстрактная залупа.
Вообще, где-то читал, что это не ооп, а написание в объектном стиле. Ну и так щас большинство и пишет вроде, только совсем деды с деменцией не могут привыкнуть
773 512172
>>512168

>Так это уже ооп чтоли, лол?


лолда.

>а то я думал что ооп это всякие паттерны и прочая абстрактная залупа.


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

>так щас большинство и пишет вроде


среди железячников-то? не-а.
774 512176
>>512172
Ну хуй знает, мб от железячника к железячнику, но на моей госпараше примерно каждый молодой спец знает про понятие объекта. Хотя если открыть старые проекты 5-10 летней давности то там пиздец, да. Но там ещё и на чистых сях всё написано.
и вместо while(1) юзают goto
775 512177
>>512176

>на моей госпараше примерно каждый молодой спец знает про понятие объекта


если им не надо воевать с дидами по поводу использования сего знания - мое увожение такой параше.
776 512178
>>512172
Так-то вещь неплохая. Но зачем мне плодить объекты, если я все равно буду использовать их в единичном экземпляре?
Вот есть у меня объект uart модуля, например. Ну написал я к нему разных методов, но что толку, если у меня всего 1 уарт в контроллере и я буду работать с 1 единственным объектом? С таким же успехом я мог всё это просто в функции обернуть в отдельном файле.
777 512179
>>512178

>мог всё это просто в функции обернуть


А если будет два уарта, то объекты точно так же не нужны, можно (и нужно) в эти функции передавать адреса периферии всего лишь.
778 512219
Раз уж коснулись темы ООП в железках: поделитесь опытом сам вкатился только полгода назад - сильно ли всякие надстройки из структур режут производительность и много ли жрут оперативы и флеша? Не так давно написал свой логгер с нуля для внутреннего пользования что-бы промониторить как и сколько новые приборы потребляют энергии и заметил что памяти он жрет столько же, сколько и серийный логгер на том же кристалле, но вдовесок имеющий wifi и lora модули + полноценный usb для моего логгера достаточно usart'а. Это я кривожопый и неопытный или ООП насрало мне в штаны? Если проблема в моей криворукости, то где почитать про то как надо ООП внедрять в железки? HAL оставил только на fatfs и ацп, для всего остального выбрал LL, проект делал в кубе с нативным компилятором серийник на кейле писался.
779 512226
>>512178

>Но зачем мне плодить объекты, если я все равно буду использовать их в единичном экземпляре?


>С таким же успехом я мог всё это просто в функции обернуть в отдельном файле.



>Но зачем мне плодить функции в отдельном файле, если я все равно буду использовать их в единичном экземпляре?


>С таким же успехом я мог всё это просто нахуярить функциями в main.c.



>Но зачем мне хуярить функции в main.c, если я все равно буду использовать их только там?


>С таким же успехом я мог всё это просто копипастить по месту применения.



ну ты понел да? Читабельность, структурирование, повторное использование, все дела.

>>512219

> Это я кривожопый и неопытный или ООП насрало мне в штаны?


это. Если ты особо не загоняешься абстрактными классами, то конпелятору пахую на твои классы, объекты и методы, он не будет в рантайме делать ничего сверх необходимого.
для понимания, если ты совсем никак - утрировано, при компиляции вот тот самый ledGPIO.toggle() сначала станет чем-то вроде GPIOClass_T.toggle(ledGPIO), а потом вообще заинлайнится. Все компилируемые языки - синтаксический сахар над ассемблером(с)
780 512227
>>512179

>можно (и нужно) в эти функции передавать адреса периферии всего лишь.


>>512226

>при компиляции вот тот самый ledGPIO.toggle() сначала станет чем-то вроде GPIOClass_T.toggle(ledGPIO)

781 512254
>>512204

>А состояние где хранить?


Ну сделай структуру со всем этим и передавай указатель.

>Допустим индекс строки передаваемой?


А если пока передается предыдущая строка захочешь ещё раз дёрнуть метод передачи строки? Получается нужно ещё внутрь пихать fifo, в который складывать указатели на передаваемые строки. Может лучше сразу все символы в fifo пихать? Тогда ещё и о времени жизни переменных можно не думать.
Необходимости в цпп с классами тут конечно нет и код от классов короче и читабельнее не станет.
782 512283
>>512254
Зачем вручную строить объект если можно использовать встроенный?
Твои рассуждения носят субъективный характер.
St-link 783 512319
Возможно ли как-то обновить прошивку St-link с китайским клоном микроконтроллера? Без обновления не работает отладка в STM32 IDE
784 512519
>>512319
На плате там есть контакты для программирования. Нужен второй стлинк.
785 512773
>>512519
А где взять последнюю прошивку в виде hex или bin файла?
image.png6 Кб, 461x167
786 513723
Сап двач, захотел поставить на stm32f401 защиту от чтения прошивки RDP 1 лвл.
Запилил такую последовательность при инициализации:
FLASH->OPTKEYR = 0x08192A3B;
FLASH->OPTKEYR = 0x4C5D6E7F;
while (FLASH->SR & FLASH_SR_BSY) __NOP();
FLASH->OPTCR |= 0x0000FF00;
FLASH->OPTCR |= FLASH_OPTCR_OPTSTRT;
while (FLASH->SR & FLASH_SR_BSY) __NOP();

Теперь не могу прошить контроллер, выдает ошибку пикрелейтед.
Че делать? Я запорол камень?
787 513895
Проскролил тренд по диоганали.
Странно, но все сидят на чистой Сишечке, ну в крайнем случае с небольшой дозой крестиков, А как же Rust, он же "ржавый"?
Да, не спорю, порог вхождения высокий, компилятор наровит анально покарать за любую малую провинность, но зато такие няшные либы в репозитории, одна единая система сборки без плаясок вокруг make c ебанутым синтаксисом, C-совместивая отладка через GDB, Freertos - да позалуйста! Вообщем я плотно подсел на этот кукан.
788 513897
>>513895
Слишком большой зоопарк разных микрух, тяжело наверное в каждую завести раст. На той же госпараше кресты только-только появляются.
789 513947
>>513897
Я с ужасом предвкушаю, что одним прекрасным январские днём придет ко мне начальник и скажет примерно следующее:
СТМок l433 больше не будет, вообще, никак. Так что живо нашел нам новый скрепный камень и переделал все проекты на него или на мороз, причем вся контора. Выбирай.
790 513952
>>513895
Тоже приглянулся раст, но когда попробовал сделать на нем что-то более-менее внятное на стмке, понял что реализовывать проекты хотя бы с обычным сенсорным дисплеем гораздо удобнее и быстрее на обычном C из-под кейла или куба.
791 514184
>>513895
Какая-то высокоуровневая хуета, в эмбедеде нахуй не нужон.
http://rustmustdie.com/
792 514733
>>513723
Тык ты залочил, теперь оно не может стереть. Нужно анлокать контроллер.
Я делаю это примернго так:
1. запустить openocd с нужным конфигом, удостовериться, что оно подключилось.
2. arm-none-eabi-gdb
`(gdb) target remote :<port>`
`(gdb) monitor stm32f4x unlock 0`
Должно написать что-то вразумительное, типо ок, сделалось.
3. Передернуть питане СТМки и тогда она будет шиться как раньше.
793 514883
>>514733

>Тык ты залочил, теперь оно не может стереть.


А почему залочивание ЧТЕНИЯ мешает стиранию (ЗАПИСИ)?
794 515072
>>514883
С такими вопросами тебе сюда https://community.st.com/s/
795 516521
>>314976 (OP)
Стоит ли выпаивать попадающиеся на всяких платах частотников, контроллеры RISC/CISC? Или се наладится и снова в Россию хлынут поставки занедорго?
796 517090
>>513947
https://mik32.ru/
ждем в этом году.
Писал им, сказали что испытания делают и в середине года будет ясно, тогда на потребительский рынок выбросят
797 517536
>>517090
Выглядит неплохо для начала, но больно мало инфы пока и периферии. Не хватает can, mil-std-1553, ethernet, adc/dac хоть каких-то.
798 517546
>>517536
Согласен, без CAN выглядит как МК для мелких поделок, во что-то больше, с несколькими платами такой ставить ну такое.
А еще странные пропорции ОЗУ и ПЗУ
799 517646
Поясните по программаторам для arm. Вот есть st-link, им можно прошить только камни STM32? А есть J-link, им шьется любой arm камень? При этом читал, что ST-link можно прошить в J-link. Получается, если покупать, то лучше сразу взять ST-link? А если у меня уже есть STM32 контроллер с платкой, то как его прошивать стлинком, через Cube или ещё как-то?
800 517664
>>517646

>им можно прошить только камни STM32


STM32 + STM8. Впрочем, зависит от прошивки, на китайском говне может быть и без поддержки STM8

>J-link, им шьется любой arm камень


J-link это переходник usb-jtag, не заточенный под конкретный камень, а дальше всё зависит от софта на компе

>если покупать, то лучше сразу взять ST-link


китайской подделки за 200р для начала хватит, а потом сам поймешь, что именно тебе надо

>как его прошивать стлинком, через Cube или ещё как-то


- cubeide, если кодишь сразу тут же и отлаживать, но может ругаться на поддельные камни
- STM32CubeProgrammer для прошивки hex
- flash loader demonstrator для прошивки через uart
если у тебя своя ide, гугли конкретно по ней
изображение.png193 Кб, 1898x915
801 518049
ЧЯДНТ ?????
Хочу просто отправить 1 по адресу LEDs
802 518092
>>518049
Потому что у инструкции str второй операнд это регистр+смещение, причем смещение небольшой разрядности. А ты один только абсолютный адрес туда запихал.
803 518171
>>518092
Спасибо за ответ. CPUlator пойдёт для начальной практики на ASM ?
nxp.PNG14 Кб, 647x324
804 519160
>>314976 (OP)
Нажил контроллер i.MX283, хотел скачать футпринт на сайте NXP, а оно не пускает. Говорит, что россиянчикам низзя. Есть кто из дружественной Украины, кто сможет скачать и выложить куда-нибудь?
805 519162
>>517546
А где вы хоть какую-то инфу нашли? Я только вики без ссылок нашёл.
806 519184
>>519162
Возможно, они сотрудники госпараш. Нам вчера от Микрона рассылка пришла как раз про этот контроллер. Больно сырая разработка пока что.
808 519249
>>519236
>>519236
Анончик, спасибо огромное за труды, но это он дает скачать без проблем. Интересует https://www.nxp.com/webapp/Download?colCode=IMX28REFSCH&appType=license
Тут необходим зарегестрированный акк. У меня есть, но блокирован из-за российского местонахождения.
809 519377
>>314976 (OP)
Это самое. Внезапно осознал, что в РФ пока можно незадорого (1-2к/шт), прикупить контроллеры ARM9/ARM11 с охуевшими частотами, кучей GPIO и прочими ништяками. Пара трудностей: BGA+многослойная печатка и нихуя не понятно в чем кодить. Пока докопал, что под них пишут на Линупсе или Вин СЕ. А если мне не нужно столь ресурсоемкое? Можно ли как для стм, просто типа FreeRTOS ебашить?
810 519505
>>519377
Ау, наносеки? В чом погроммировать эти шикарные контроллеры?
image.png82 Кб, 625x562
811 519524
Объясните, я могу переназначить пины PA13, PA14 под гпио-инпуты? Я смогу после этого програмировать камень? Он же через эти пины и пограмируется ST-link_ом.
812 519525
>>519524
Там же навроде с зажатым ресетом коннектятся как выводы программирования. Хотя могу ошибаться. Кури RM на камень
813 519527
>>519525

>Там же навроде с зажатым ресетом коннектятся как выводы программирования.


Я ниче не нажимаю. Ресет никак не соединен с программатором.
814 519528
>>519527

>Я ниче не нажимаю.


А надо будет. В ST-LINK Utility выбираешь пункт Connect under reset и коннектишься с зажатым ресетом к своему камню
815 519538
Пидерахи спок
816 519578
>>314976 (OP)
Приконнектился к ADUC7601 с помощью китайского J-Link. В честно купленном на торрентах Keil µVision3 V3.90 RealView MDK-ARM Version 3.80a, скомпилировал прошивку из честно скачанных на сайте AD примеров и загрузил в микроконвертер.
Завидуете, неудачники?!
817 519580
Что он от меня хочет?
Хотел поменять тип elf файла, чтобы в протеусе поиграться, а он ругается. Причем если поставить формат по умолчанию -dawrf-4 он один хер ругается.
Где в STM32CubeIDE 1.7.0 задать формат elf файла понятный протеусу?
Контроллер STM32F103C4Tx
image.png15 Кб, 613x303
818 519581
>>519580
А этим обсерается протеус.
819 519618
>>519580
>>519581
Заработало.
820 520208
>>519618

>Заработало.


Держи нас в курсе!
821 520555
>>520208
А мне интересно.
Мимо проходил
822 520560
>>519184
НИИЭТ обещает выкатить 4 risc-v к 2024. У них уже были хорошие cortex-m4f 1921ВК с нормальной периферией.
823 520563
>>520560
У этого НИИЭТа только на бумагах все четко, а по факту даже на 1921 проблемы с поставками, наверное сказывается перегруденность, но это пиздец все равно.
Звонил им в Воронеж, у них минимальный срок поставки 180 дней, и это минимальный! Там по факту больше скорее всего будет.
824 520771
>>314976 (OP)
Вы заебали! Скажите уже в чом компилить для ARM926EJ-S?
825 520976
>>520771
Для вас, Козлов, gcc написали! https://www.google.com/search?q=arm926ej-s+gcc
826 521042
>>520976

>gcc написали!


Там же страшная, командная строка!!! Ты предлагаешь мне начать изучать "Make-файлы на селе"?
827 548813
ide посоветуйте под stm32. До этого только esp-шки в arduino studio гонял.
828 548859
>>548813

>ide посоветуйте под stm32.


Qt creator вместе с https://github.com/ObKo/stm32-cmake или можно крякнутый clion вместе с теми же симейеовсуими скриптами.

>До этого только esp-шки в arduino studio гонял.


Тогда можешь продолжать пользоваться той же ардуиной.
829 548874
>>548859
О, отлично, просто идеально, я как раз с++ гоняю почти только в qtcreator.
830 549056
Кто то знает как сделать загружать линукс сразу весь в оперативную память
831 551654
>>548859
Доброго дня, подскажешь как это настроить?
Я попробовал раза три, выпадают ошибки, который по этой инструкции не подразумеваются, хотя отдельно все компоненты работают (кроме компилятора, который я не могу проверить), вчера на работе вот прям с восьми утра и до отбоя сидел над этим. То на файл ld жалуется, что его таргетом должен быть файл .._name.elf - и не ясно как к нему цель указывать, то (чаще всего) "not able to compile a simple test program"

Я бы сформулировал вопрос как "Какие минимальные действия я должен сделать, что скомпилировать hello world?"
Вот прям один файл из консоли без cmake/make превратить в бинарник. Cmake уже потом доделаю.
832 551694
>>551654
Итого за сегодня:
- работает CubeIDE
- работает IAR
- работает Arduino IDE
- не работает всё что угодно с CMake или с этим "arm-none-eabi"

Если не получится, завтра буду разбирать как иде выше компилируют, наверняка там внутри тот же arm-none-eabi
833 551707
>>551654

>Вот прям один файл из консоли без cmake/make превратить в бинарник.


Подожди, завтра тебе напишу. Только чем тебя не устраивает Arduino IDE? Тем более оно куда более популярно в /ra/ чем вот это все бессмысленное красноглазие.

>>551694

>наверняка там внутри тот же arm-none-eabi


Не везде, в iar их собственный компилятор.
834 551744
>>551707
Буду очень признателен, если напишешь.

>Только чем тебя не устраивает Arduino IDE?


1. В ней без дополнительных действия я не смогу скомпилировать прошивку с работы где почти 40 отдельных файлов - переписать можно, но это я неделю буду делать пытаясь понять как обращения к регистрам переписываются в ардуине, а я во-первых вообще не должен этим заниматься по хорошему (хотя тут и говорят, что мол если надо - сиди делай хоть две недели), во-вторых есть другие задачи, интереснее.
2. Оно постоянно что-то загружает и индексирует в углу какую-то хуету, по 15 минут после любого действия и грузит процессор, ещё и ошибку сыпет. Открыть два проекта по нормальному нельзя. Не уверен что внешний вид настраивается, редактировать там программу больше чем из одного файла очень не хочется.
3. Хочу работать в привычной ide, это и эффективнее, и удобнее.
835 551745
>>551744
попробуй конпелировать с помощью arduino-cli
a.png119 Кб, 1322x732
836 551752
>>551707

>Подожди, завтра тебе напишу.


Написал минимальный пример. https://pastebin.com/CFrgkvjA
Это для линуксов, для винды будет аналогично, только слэши в другую сторону.

Если нужно, то могу показать пример с симейком.
837 551753
>>551752
-c http.sslVerify=false потому что на работе сетевой антивирус.
b.png126 Кб, 805x864
838 551769
И теперь для CMake. https://pastebin.com/cx6nva3K
Для винды нужно дополнительно указать -G "Unix Makefiles" и возможно задать CMAKE_MAKE_PROGRAM
839 552189
>>551769>>551752
Анон, спасибо огромное, прям от души. Даже захотелось завтра пораньше приехать на работу, настроить там.
Первое заработало сходу, второе через три минуты. Ну, по крайне мере на домашнем ноуте.
А я часами долбил примеры с гитхабов, и всюду возникали ошибки, которых не должно было быть - и решение которых не имело отношения к самой программе со светодиодом и выходило далеко за его рамки, будто там cmake и компилятор на 20 версий отличаются и не совместимы.

В четверг-пятницу тыкнули на другую задачу ездить в другое место (и обратно приезжал на два часа позже вообще без сил), вчера по дому делал что-то, а сегодня только собрался с силами и решил дома в нормальных условиях поразбираться.
840 559611
>>514184
Крутаном будешь.
Ультрамегахарош
841 560318
Здеся можно voprosique про rp2040?
Есть один RP2040-mini. Попал в руки час назад.
Попробовал помигать светодиодиком, думая, что он на 16-м пине, как нарисовано в пинауте. Но светодиодик не загорается совсем.
Это потому что я жопорукий или светодиодик дохлый?

Скетчь товно прошилась. Проверочное слово "GOWNO" поступает в ком-порт.
842 560323
>>560318
Ты посмотри даташит на этот светодиод
843 560326
>>560323
Voprosique-ов стало больше.
Смотреть на даташит на светодиод или даташит на RP2040-mini в том месте, где про светодиод?
Что я там должен увидеть?
844 560330
>>560326
Это скорее адресный светодиод. Правильно тебе >>560323
сказал, смотри даташит. 95%, что он WS2812-совместимый.
845 560334
>>560330

>95%, что он WS2812-совместимый


Почему это важно? Он из-за этого может не работать?
846 560349
>>560330
>>560323
Ладно, спасибо, я всё понял.
Китайцы не могли не выебнуться и встроили ЛГБТ светодиод вместо обычного. Скопировал первый попавшийся кусок кода ЛГБТ в скетчь и светодиод заработал.
Проверочное слово KURWA.
image-27.png519 Кб, 600x600
847 560356
>>560349
Молодец, анон!
848 562005
>>452883
Микроконтроллеры STM32 не пропали из магазинов, они есть в наличии. Однако цены на них действительно выросли.
изображение.png293 Кб, 1456x1594
849 568006
STM32 L051, не могу понять как работает stop-mode и вообще какие есть режимы энергосбережения, нужна помощь.

Как я понял есть:
1 - run-mode - обычный.
2 - low-power-run-mode - то же самое что и первое, но с заниженной частотой и с регулятором в режим низкого потребления, что позволяет получить намного лучшее число μA/MHz, чем если просто поставить 60 кГц.
3 - sleep-mode - всё кроме процессора работает, все таймеры и периферия.
4 - low-power-sleep-mode - аналогично 3, но с заниженной частотой, быстрые таймеры отваливаются и надо flash отключить и потом включать.
5 - stop-mode - работает только LSI/LSE, устройство может выйти из этого режима по прерыванию от RTC, LPTIM, EXTI и ещё некоторых. Большая часть периферия не работает.
6 - standby-mode - даже оперативка не сохраняется, по сути устройство выключено и у него полтора с половиной способа проснуться (RTC, IWDG и два пина), механизм чтобы на Марсе передатчик раз в месяц включать на две секунды.

Далее по регистрам и флагам:
PWR_CR_LPSDSR - регулятор в энергосбережающим режиме.
PWR_CR_LPRUN - нужно для low-power-run-mode, вместе с предыдущим флагом и заниженной частотой.
PWR_CR_ULP - отключает опорное напряжение, датчик температуры и прочее в некоторых энергосберегающих режимах. К переключениям режима отношения не имеет, просто настраивает режимы, как
SCB_SCR_SLEEPDEEP - вместо sleep падать в stop-mode (почему это не флаг в регистре PWR_CR и почему в Reference Manual не описан этот регистр?)
PWR_CR_PDDS - вместо stop-mode падать в standby-mode
RCC_APB1SMENR/RCC_IOPSMENR/.. - настройки периферии для sleep-mode/low-power-sleep-mode, можно продублировать RCC_APB1ENR/RCC_IOPENR, можно что-то не включать урезав функционал в sleep-mode?

При вызове __WFI() устройство падает в режим sleep/stop/standby в зависимости от указанных выше флагов.

Пожалуйста, поправьте в каких местах я ошибся?

---

Ещё вот картинка, пробую по прерыванию LPTIM выйти из stop-mode.
В итоге без SCB_SCR_SLEEPDEEP всё работает как надо. А с SCB_SCR_SLEEPDEEP прерывание точно работает (led_red отрабатывает в прерывании и значение lp_time изменяется, но в основной функции __WFI() так и продолжает висеть бесконечно. То есть устройство просыпается, выполняет две строчки кода в прерывании и засыпает снова? При этом есть код пробуждения по RTC, он работает (вместе с кодом LPTIM перестаёт работать, то есть вот то что я написал блочит пробуждение по RTC по непонятным мне причинам)

Ещё я не понимаю смысл регистров RCC_IOPSMENR/RCC_APB1SMENR/.. и других с "SM". У меня LPTIM отлично работает во время __WFI() даже если ничего не писать в RCC_APB1SMENR, хотя это вроде бы режим сна, а вот без флага в RCC_APB1ENR не работает.
изображение.png293 Кб, 1456x1594
849 568006
STM32 L051, не могу понять как работает stop-mode и вообще какие есть режимы энергосбережения, нужна помощь.

Как я понял есть:
1 - run-mode - обычный.
2 - low-power-run-mode - то же самое что и первое, но с заниженной частотой и с регулятором в режим низкого потребления, что позволяет получить намного лучшее число μA/MHz, чем если просто поставить 60 кГц.
3 - sleep-mode - всё кроме процессора работает, все таймеры и периферия.
4 - low-power-sleep-mode - аналогично 3, но с заниженной частотой, быстрые таймеры отваливаются и надо flash отключить и потом включать.
5 - stop-mode - работает только LSI/LSE, устройство может выйти из этого режима по прерыванию от RTC, LPTIM, EXTI и ещё некоторых. Большая часть периферия не работает.
6 - standby-mode - даже оперативка не сохраняется, по сути устройство выключено и у него полтора с половиной способа проснуться (RTC, IWDG и два пина), механизм чтобы на Марсе передатчик раз в месяц включать на две секунды.

Далее по регистрам и флагам:
PWR_CR_LPSDSR - регулятор в энергосбережающим режиме.
PWR_CR_LPRUN - нужно для low-power-run-mode, вместе с предыдущим флагом и заниженной частотой.
PWR_CR_ULP - отключает опорное напряжение, датчик температуры и прочее в некоторых энергосберегающих режимах. К переключениям режима отношения не имеет, просто настраивает режимы, как
SCB_SCR_SLEEPDEEP - вместо sleep падать в stop-mode (почему это не флаг в регистре PWR_CR и почему в Reference Manual не описан этот регистр?)
PWR_CR_PDDS - вместо stop-mode падать в standby-mode
RCC_APB1SMENR/RCC_IOPSMENR/.. - настройки периферии для sleep-mode/low-power-sleep-mode, можно продублировать RCC_APB1ENR/RCC_IOPENR, можно что-то не включать урезав функционал в sleep-mode?

При вызове __WFI() устройство падает в режим sleep/stop/standby в зависимости от указанных выше флагов.

Пожалуйста, поправьте в каких местах я ошибся?

---

Ещё вот картинка, пробую по прерыванию LPTIM выйти из stop-mode.
В итоге без SCB_SCR_SLEEPDEEP всё работает как надо. А с SCB_SCR_SLEEPDEEP прерывание точно работает (led_red отрабатывает в прерывании и значение lp_time изменяется, но в основной функции __WFI() так и продолжает висеть бесконечно. То есть устройство просыпается, выполняет две строчки кода в прерывании и засыпает снова? При этом есть код пробуждения по RTC, он работает (вместе с кодом LPTIM перестаёт работать, то есть вот то что я написал блочит пробуждение по RTC по непонятным мне причинам)

Ещё я не понимаю смысл регистров RCC_IOPSMENR/RCC_APB1SMENR/.. и других с "SM". У меня LPTIM отлично работает во время __WFI() даже если ничего не писать в RCC_APB1SMENR, хотя это вроде бы режим сна, а вот без флага в RCC_APB1ENR не работает.
изображение.png11 Кб, 479x157
850 568007
>>314976 (OP)

>Только C/C++, IAR/GCC


Я кстати сгорел от IAR, и кое-как написал Cmake, чтобы из qtCreator или батником компилировать и прошивать (сейчас я пишу в qt, компилирую и прошиваю через IAR/батник, что капец как неудобно). И в общем IAR собирает с максимальной оптимизацией в 36 кб, а с оптимизацией по размеру в 30 кб (в коде куча отладочных snprintf с текстом), gcc собирает с -Os (и всякими specs nano, из-за которых весь код в предупреждениях) в 60 кб, а с -O2 в 140 кб. В наличии всего 64 кб. Очень расстроился, что у gcc лапки и -ffunction-section не помогает, размен бинарника в 4 раза больше это шутка какая-то, учитывая что кода мало и логику работы программы я на одной странице опишу в деталях.

А IAR ещё прям пишет, что dbldiv (деление 64-битных с плавающей запятой) занимает 314 байт, и так по каждой явно или неявно используемой функции. Считаю, что это прям очень полезная информация от компилятора, я 15 кб лишних, увидев что компилятор что-то лишнее имплементирует.

Если кто-то знает как через iarbuild собрать проект - буду очень признателен. У меня из ide компилируется, из iarbuild не видит папку с CMSIS. В идеале вообще сделать чтобы CMSIS лежал во внешней по отношению к проекту папке и цеплялся так же как на gcc через Cmake, но я не знаю как это скормить в IAR ни в самое ide, ни в параметрах iarbuild, вариант где в подпапке проекта лежит 10-15 файлов CMSIS тоже приемлимый.
Ну, или придётся искать где-то лог (я не нашёл) с каким параметрами и как вызывается компилятор IAR, враппер написать, который будет транслировать параметры и логгировать их. Причём qtCreator даже видит компилятор и понимает что это, но я не смог найти описание параметров компилятор и линковщика. По этой части тоже не откажусь от помощи, в общем. В 4 раза разница по размеру - это петрушка.
851 568011
>>568006
Номера белым подписанные "стадии" на картинке на 1 сбились походу, только сейчас заметил что там низкий и высокий уровень не совпадает с 0/1. Возможно и собака в этом зарыта, что один раз прерывание всё-таки срабатывает, а я какой-то флаг забываю очистить, например PWR_CR_CWUF записать сбросив PWR_CSR_WUF. Ладно, уже завтра проверю, и так сижу 14 часов с утра над разными штуками, надо поесть хотя бы.
852 568017
Расскажите про эти железные программаторы-дебаггеры. Я так понял, оно не обязательно должно быть, чтобы похеловорлдить, но дает всякие удобства? Какие есть годные на али?
Алсо, есть свои под линейку арм, а под другие мк?
изображение.png210 Кб, 839x494
853 568026
>>568017
Программатор нужен, чтобы через него залить бинарник на чип. Вроде как без него нельзя похелловордить (только если в симуляторе каком), так как результат не увидишь.

Ты меня не слушай (тут просто нет никого с некоторой вероятностью, лучше хоть я спровоцирую кого-то ещё написать правильнее и более полезный совет), но я посоветую найти пиратку jlink на рутрекере и вот эту приблуду купить по цене двух банок энергетика. Можно писать скрипты для прошивки (и вызывать их из любой ide), указывая как и что перепрошить. Там есть не подпаянный rst-пин (возможно его можно подпаять и он даже будет работать, я пока не пробовал).

Отладкой не пользуюсь, не очень понимаю как она должна работать с прерываниями, но подключиться к плате и выполнять строчки кода по одной или до какой-то требуемой можно. Может быть на оригинальным jlink нормально отлаживаются прерывания или есть ещё какие-то более расширенные функции, не подскажу.
854 568027
>>568026

>Программатор нужен, чтобы через него залить бинарник на чип. Вроде как без него нельзя похелловордить (только если в симуляторе каком), так как результат не увидишь.


Это не так. Сейчас наверное во всех микроконтроллерных армах есть бутлоадер, через который можно загрузить как минимум через uart, а где-то и usb.

>jlink на рутрекере


Не стоит. Бинарники патчить там не нужно, а только лишь сгенерировать ключи по серийнику программатора, с чем справляется rdikeygen.exe, а сам инсталлятор целесообразнее взять свежий с сайта сеггера.
855 568029
>>568006
Нашёл ещё вот такую таблицу.
Тут сказано что нужно именно любую EXTI линию, а просто прерывание от LPTIM не указано. Я её искусственно вызываю по таймеру. Оба прерывания работают и линию переключают, но __WFI() так и продолжает висеть. Как выйти то из прерываний и продолжить выполнение после WFI?
изображение.png10 Кб, 626x137
856 568307
В общем, построчно код сравнивал с одного устройства на L051 и другого, нашёл отличие. В одном был делитель 4 и ARR 8 (в регистре 8-1=7), а в другом делитель 32 и ARR 1 (в регистре 1-1=0).
Формула для периода всё такая же как и в обычных таймерах (частота)х(ARR+1) (вроде бы, явно ни в даташите, ни в RM я её не вижу, просто на частоту смотрел сам), а по какой-то причине ARR равным 0 ставить нельзя именно для LPTIM. На самом деле оно как-то частично работает, прерывания то обрабатываются в нужные моменты, но какая-то часть памяти в кашу превращается, если посмотреть на регистр LPTIM1->ISR, то там все остальные биты включаются, в том числе по выключенным прерываниям. И вот написано, что не надо 0 ставить.

Не самые полезные десять часов жизни, лол. Хотя отчасти наоборот более полезные, чем когда делаешь и всё получается, так что это плюс-минус рутина без нового опыта.
А ещё перебирая код и тестируя от какой строчки кода всё ломается нашёл что ещё поотключать, выиграв ещё 0.03 мА потребления, это почти -20% энергопотребления в среднем.
Обновить тред
« /ra/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски

Скачать тред только с превьюс превью и прикрепленными файлами

Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах.Подробнее