IgorE Написал:Вспомнил как хаяли все кому не лень графический ассемблер Громова. И такой и сякой. А он просто замечательный, без глюков, все как по нотам разложено.
Только давно уже нафиг не нужный.
Я много чего делал на асме для 48/51-семейств, ну и конечно 8080/8085/Z80 в 80-е годы и начале 90-х.
Потом на ассамблдере для PIC, с момента их реинкарнации в 93-м, и примерно до 98-го, когда один и кучи компиляторов (Хай Теч) наконец стал пригодным к использованию.
С тех пор, ассемблером не пользуюсь, максимум - небольшие вставки в Си-код, и то крайне редко.
IgorE Написал:Уже после того как Громов перестал его развивать, появилось куча графических программ импортных.
Ну подобного было навалом и до АлгоритмБилдера.
IgorE Написал:Вы сами, что то делали в STM32CubeMX ? В железе? Реально без проблемное получить или как?
Да, конечно.
Но тут надо разделять две функции, котоый делает Cube:
1) Расстановка сигналов по ножкам
2) Генерация кода с использованием библиотеки HAL.
Начну со второго - основная масса нареканий ("калокуб" и пр.) - именно в исползовании HAL. Также как до этого, ворчали на ее предшевственницу - SPL.
И надо признать, код там действительно написан так, что без пол литры не разьерешся (в смысле - внутренности HAL, если в них полезть). А все потому, что хотели сделать код верзнего уровня(выходы функция и параметров HAL) совместимыми между любыми процессорами всех имеющихся на сегодня семейств F0-F7/L0-L4.
Многие вещи сделаны слишком универсально, и следовательно - не слишком оптимально. В рещультате, занимаютбольше места и медленее работают.
Правда, на это случай в самом HAL'е есть LL-фунцкии, ониболее "низкого уровня" и работают намного быстрее универсальных.
Далее - Cube+HAL, это не АлгоритмБилдер, не Дельфи/С++БИлдер и т.п., он не генерирует код самой программы!
Он генерирует код только начальной инициализации проца и периферии, и делает заготовки обработчиков прерывания. Саму обработку, также как и саму основную программу - надо писать самому. Ручками.
При этом, HAL (как и раньше SPL), вовсе не обязательно использовать - "Мавр сделал свое дело, Мавр может уходить". Во многих случаях, я именно так и делаю - все, после инициализации, пишется так, как будто никакого HAL/SPL нет, или комбинируя и то и то.
В некторых случаях весьма хитрого использования периферии, и инициализацию лучше самому написать.
А Кортексы это тебе не АВРы, тут много чего есть. Многое в периферии можно единоразово настроить так, чтобы оно работало аппаратно, без участия процессора вообще.
Например настроить так таймер, чтобы он запускал АЦП, при этом выдавал на ножки несколько сигналов, сдвинутые относительно запуска АЦП на разное время. АЦП при этом, оцифровывал бы несколько каналов, в произвольно-заданном порядке, и складывал результаты в массив в памяти. Плюс при этом запускался бы другой таймер, и вызывал бы запуск ЦАПа, который брал бы числа из массива и выдавал наружу.
И, повторяю, все это без участия процессора, иногда даже без прерываний - его можно вобоще в sleep перевести, чтобы жрал по меньше. Или он можето заниматься чем-то другим (например - обрабатывать принятые с ЦАП сигналы, и как-то их преобразовывать для отправки в ЦАП).
Теперь о первом - до Куба была программа MicroExplorer, для расстановки сигналов по ножкам.
Опять-же - это не АВР, у нжки может быть десяток разных функци, плюс одна и та-же периферия, можно быть на разных ножках, но не на любых. И есть такая, ножки которой имеют только один вариант.
Когда используешь много периферии, возникают проблемы - если посадил на эту ножку UART, то лишался одного из SPI. Значит, надо UART сажать на альтернативную ножку (а вариант всего два). Но на той ножке I2C, значит его тоже надо куда-то переносить.
Было смешно - делал лет 8 назад первый проект на F4, они только появились тогда. Почти неделю ( проект не основной, им занимался по нескольку чавсов в денб, не более) сидер рисовал на бумажках, расставляя ножки, т..к нужно было и I2C, и I2S, и два SPI, и UART, и два выхода DAC, и 8 входов ADC, и интерфейс к SD-карточке, и просто "ногодрыг". Хорошо что там не нуждно было ни USB, ни Ethernet.
И когда я закончил расставлять ножки, вечером приходит емейл от ST, с радостной вестью: "мы выложили первую версию МикроЭксполорера.
Скачиваю, ставлю - все, что я делал всю неделю, я повторил заново за 15-20 минут!
Кстати, там тоже был пункт "генерировать Си код инициализации", только он был не активным, обещали "потом сделаем". В резулутате - оно трансформировалось в Куб.