А что ужасного в STM32? Это просто гораздо более мощный микроконтроллер с гораздо более высоким порогом вхождения, для более умных и опытных программистов. Документация - да, на порядок объемнее. Про стартап линкерскрипт уже сто раз объяснили. Автор вопроса либо тупит, либо капризничает. Ну да, STM32 гораздо сложнее, это вы ещё не видели системы тактирования в каком-нибудь STM32H743. Но это просто совершенно иной уровень. Если программист не тянет мозгом, то незачем и начинать. А то как в басне про обезьяну и очки.
Автору - не волокешь, не хватает соображаловки, мозги не проворачивают объем информации - просто не лезь в эти дебри, сдохнешь. STM не виноват, что он сложный. Виноват программист, недостаточно подготовленный и не понимающий. А ведь есть и гораздо более сложные системы, для весьма подготовленных специалистов.
Причём здесь тянет мозгом, не волокёшь, вы на СТМке уже 10 лет сидите, а я лишь описал впечатления после 2-х дней знакомства с СТМ после AVR. Причём, если бы я не был знаком с AVR, то таких впечатлений скорее всего бы не испытал, так как сравнивать было не с чем.
Причём здесь соображалка. Пример с uart_print() у меня собрался, раз уж я понял что HAL не той версии.
Я и не собирался лезть в дебри, мне нужно было понять проект-примера это же не дебри - это на поверхности, только поверхность была большая от ld-скриптов и стартапа до HALa.
По моему вы как-то приняли на свой счёт мои впечатления о знакомстве STM32-после-АVR и перешли на обсуждения меня. Причём я написал этот отзыв после того, как уже разобрался с API HAL. Это был скорее юмор, но как мне показалось его слишком серьёзно восприняли.
Добавлено after 1 hour 9 minutes 34 seconds:ddr4, направьте вашу злость в правильное русло и всё получится!
У меня нет такого контроллера как у вас, но есть очень похожий. Сделал на нём самый простой проект, как я это понимаю, без всяких библиотек. Компилируется с помощью makefile. Должно и в Windows, и в Linux собираться. Только пути к компилятору прописать.
Линкерскрипт и стартап можете, конечно, посмотреть, но править в них что-то никакой необходимости нет.
Остались два .cpp файла с кодом - там и творите.
F303_Blink.zip
Думаю, сделать по аналогии на ваш контроллер - дело 10 минут.
Это была не злость, а скорее юмористический отзыв, который описывал первые ощущения от знакомства с СТМ32. На момент написания которого, я уже разобрался в структуре проекта, то есть нашёл HAL, перевёл найденный пример uart-print() на свою версию HAL и собрал. То есть причины злится у меня не было. К сожалению мне пока негде его проверить собранный пример, так как выводы к плате ещё не припаял. Для проверки пытался использовать QEMU с командой:
- Код:
qemu-system-arm -machine netduinoplus2 -cpu cortex-m4 -kernel test.bin -nographic
Но программа висит и в окно эмулятора ничего не пишет. Кто-то советует делать вывод в unix сокет, но у меня Windows. Вобщем трудно понять работает ли программа, но видимо это уже на железе надо проверять. Хотя я не оставлю попыток установить QEMU в Линукс и попробовать уже там с выводом в unix-сокет.
Спасибо за пример. Как я понял это прерывания по таймеру, подробности (частота срабатывания и настройка таймера) пока не изучал.
Добавлено after 1 hour 53 minutes 51 second:Идеальнейшим вариантом для ТС было бы вычитать всю нужную документацию и практически с полного нуля начать разработку, чтобы все понять. Взять образцы, да написать свой Makefile, ld-скрипт, стартап (выкинуть все ненужное из классики - в С нафиг не надо держать все эти секции конструкторов-деструкторов, еще выкинуть запуск всякого говна вроде SystemInit - их правильней вызывать в начале main). Качнуть CMSIS с заголовочными файлами под свой камень и разрабатывать.
С нуля это не разработка, а скорее изучение МК. Разрабатывать приложения можно не заглядывая в CMSIS. Я так и делал в avr-gcc, там своя библиотека avr-libc встроена в компилятор.
Вобщем для разработки на STM32 достаточно рабочих примеров на HAL, можно и над ним подняться при желании, железо с натяжкой позволяет.
И так как STM не сделала свой stm-gcc, то у нас есть библиотеки CMSIS+HAL, cross-gcc + ld-скрипты.
Вот меня такой зоопарк сперва немного удивил.