Название: Помогите нубу влиться в разработку МК. (STM32 NUCLEO-L053R8) Отправлено: __Heaven__ от Июнь 29, 2017, 23:55 Привет друзья!
Прошу помочь разобраться и дать старт-пинок в обучении. Я заинтересовался микроконтроллерами и хотел бы научиться вести разработку под них в IDE QtCreator. Для моих экспериментов я владею картой NUCLEO-L053R8 Сейчас переработал достаточно много информации по теме, но всё равно остаюсь на уровне "железо подключено в ПК, но ничего не происходит", потому нуждаюсь в консультации. Мне продемонстрировали, как можно создать проект при помощи сервиса mbed и импортировать в IDE Keil. С её помощью мне удалось помигать светодиодом с помощью кнопки. Недостатком Keil для меня послужило то, что на фоне QtCreator она какая-то не няш-мяш, да и с c++11 у меня там не сложилось. Также с помощью статей из интернета я импортировал упомянутый проект в GCC make, который смог с некими ухищрениями открыть и скомпилировать в QtCreator, но почему-то отладка срабатывала как-то через раз. Также я попытался создать проект QBS, куда прикручивал гитовые исходники mbed со своим main.cpp, но что-то пошло не так и скомпилированный код оказался большого размера 68к и не запустился на плате. Меня интересует, каким образом было бы правильно вести разработку для данного МК. Меня беспокоит, что mbed отжирает минимум половину ПЗУ. Я наблюдал, как местные пользователи, например kuzulis, делятся проектами, где в качестве используемых библиотек присутствует жалкая горстка файлов. Так понимаю, что это весьма экономично. Хотелось бы узнать, как определять, какие файлы мне необходимо брать в проект и главное, откуда их брать? Первой целью для меня сейчас стоит научиться отлаживать проект с использованием цифровых входов/выходов и прерываний. Во вложении скрины настройки сборок. Название: Re: Помогите нубу влиться в разработку МК. (STM32 NUCLEO-L053R8) Отправлено: __Heaven__ от Июнь 29, 2017, 23:55 Продолжение
Название: Re: Помогите нубу влиться в разработку МК. (STM32 NUCLEO-L053R8) Отправлено: kuzulis от Июнь 30, 2017, 08:37 Ну, вопрос "где брать файлы" риторический, т.к. стеков/библиотек полно, как от самих производителей, так и опенсорц. Часто, стеки (HAL) от вендоров - УГ. Поэтому можешь посмотреть в сторону опенсорсного libopencm3 (http://libopencm3.org/), который написан в более менее нормальном стиле.
Емнип, главное - это создать корректный файл для линкера *.ld и стартап файл startup.c/asm, иначе оно не сможет отлаживаться (да и мигать диодиками тоже). Я никогда не использовал QtC чтобы что-то серьезное отлаживать - а только мигать диодиками. :) У нас все используют Keil/IAR. На крайний случай, можно выдернуть готовые линкер-файлы и прочую дребедень из проектов CooCox (http://coocox.org/), т.к она использует GCC ARM компилер. Ну, а по хорошему - читаем даташит на проц и ляпаем линкер/стартап файлы.. :) А насчет размера выходного файла бинарика - так, ЕМНИП, все зависит от флагов компиляции, линковки и стриппера. И тут QBS ни при чем - это же все не магия в конце концов. Название: Re: Помогите нубу влиться в разработку МК. (STM32 NUCLEO-L053R8) Отправлено: __Heaven__ от Июнь 30, 2017, 09:28 Я никогда не использовал QtC чтобы что-то серьезное отлаживать - а только мигать диодиками. :) Не справляется??Название: Re: Помогите нубу влиться в разработку МК. (STM32 NUCLEO-L053R8) Отправлено: __Heaven__ от Июнь 30, 2017, 11:03 У меня имеются следующие файлики ld и asm (см. аттач). Взял их из mbed-os (mbed-os\targets\TARGET_STM\TARGET_STM32L0\TARGET_NUCLEO_L053R8\device\TOOLCHAIN_GCC_ARM)
На сколько они корректны и как их правильно прикручивать? Честно говоря, не сталкивался ранее с подобными файлами. Есть смысл углубляться в изучение того, как они формируются или на первых порах проще искать готовые решения? Название: Re: Помогите нубу влиться в разработку МК. (STM32 NUCLEO-L053R8) Отправлено: kuzulis от Июнь 30, 2017, 11:29 Цитировать Не справляется?? Не принято у нас, никто не перейдет на это с теплых/ламповых IAR/Keil. Будут мучаться с рефакторингом, но зато отладка по-быстрее говорят. Да я и не до такой степени эмбеддедщик, ничо нового не скажу. Цитировать На сколько они корректны и как их правильно прикручивать? Честно говоря, не сталкивался ранее с подобными файлами. Есть смысл углубляться в изучение того, как они формируются или на первых порах проще искать готовые решения? Я бы погуглил и поизучал на этот счет, т.к. разные компиляторы имеют разный синтаксис этих *.ld файлов (кроме того, для разных MCU они также имеют разный контент). Но проще взять готовый на первых порах, и, если с ним заработает, то использовать его, а тюнинговать уже можно потом. Название: Re: Помогите нубу влиться в разработку МК. (STM32 NUCLEO-L053R8) Отправлено: __Heaven__ от Июль 04, 2017, 17:44 можешь посмотреть в сторону опенсорсного libopencm3 (http://libopencm3.org/), который написан в более менее нормальном стиле. Я посмотрел документацию на библиотеку и несколько примерчиков. Вполне себе годно. Хотел бы уточнить, быть может будет рекомендация на подобную либу только на c++? Очень уж понравилось использовать всякие DigitalOut led(LED1); led = true; Название: Re: Помогите нубу влиться в разработку МК. (STM32 NUCLEO-L053R8) Отправлено: Old от Июль 04, 2017, 20:00 Я посмотрел документацию на библиотеку и несколько примерчиков. Вполне себе годно. libopencm3 неплоха, лежит максимально близко к железу, но из-за этого управление некоторой периферией для STM32F1, может сильно отличаться от такой же для STM32F4, например.В свое время я из-за этого от нее отказался, и остановился на ChibiOS, это реалтайм ОС со своим HAL, который позволяет писать более переносимый код между контроллерами. Хотел бы уточнить, быть может будет рекомендация на подобную либу только на c++? Это пока хочется мигать светодиодиками. Скорее всего в боевом коде, который что-то делает, удобней будет использовать другие, более высокоуровневые, абстракции.Очень уж понравилось использовать всякие DigitalOut led(LED1); led = true; Но если очень хочется, то есть mbed: https://developer.mbed.org/ Название: Re: Помогите нубу влиться в разработку МК. (STM32 NUCLEO-L053R8) Отправлено: __Heaven__ от Июль 04, 2017, 23:43 Я возможно чего-то не понимаю, но mbed сходу отжирает больше половины норматива памяти. Не думал, что пироженки на столько дорогие.
С заданием тактирования я пока не разбирался, но на STM32L053 светодиод мигает, а на STM32L011 фиксируется только первое состояние. Мне казалось, что mbed за меня все настроит. Сейчас разбираюсь, как заставить мигать светодиод на мелкой плате (которая L011) и стоит ли связываться с mbed. Название: Re: Помогите нубу влиться в разработку МК. (STM32 NUCLEO-L053R8) Отправлено: Old от Июль 05, 2017, 06:36 стоит ли связываться с mbed. Нет. Это такая же игрушка, как и Ардуина. Надоест играться, придется заново разбираться с чем-то другим.Название: Re: Помогите нубу влиться в разработку МК. (STM32 NUCLEO-L053R8) Отправлено: __Heaven__ от Июль 05, 2017, 09:22 kuzulis, old, спасибо за рекомендации. Я наверняка ещё обращусь с вопросами :)
Название: Re: Помогите нубу влиться в разработку МК. (STM32 NUCLEO-L053R8) Отправлено: __Heaven__ от Июль 08, 2017, 23:06 Начал знакомство с opencm3 пока под windows. Плата STM32L011K4T6.
Начала qbs проект. Код
Код Код билдится, но выдается ошибка при попытке отладки (см. вложение) Название: Re: Помогите нубу влиться в разработку МК. (STM32 NUCLEO-L053R8) Отправлено: juvf от Январь 10, 2018, 10:40 Цитировать Прошу ... дать старт-пинок запоздало, но тем не менее вот (http://"https://www.youtube.com/watch?v=YgHe3D1t3Fs") танец с бубном, вроде то, что нужно?https://www.youtube.com/watch?v=YgHe3D1t3Fs Название: Re: Помогите нубу влиться в разработку МК. (STM32 NUCLEO-L053R8) Отправлено: __Heaven__ от Январь 10, 2018, 11:01 Спасибо!
Я пока отложил свои хобби - работы много :( Так что не поздновато - буду использовать :) |