STM32 новичку в ARM что к чему

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Опытный кот
Аватара пользователя
Сообщения: 791
Зарегистрирован: Вт июн 17, 2014 00:34:26

Сообщение baghear »

Разобрался для запуска spi в этой серии нужна задержка.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 7033
Зарегистрирован: Сб янв 28, 2006 22:47:24

Сообщение Asmodey »

[uquote="baghear",url="/forum/viewtopic.php?p=3713241#p3713241"]в этой серии нужна задержка.[/uquote]
Где?
Астролябия-сама меряет, было бы что мерять!!!
Реклама
Друг Кота
Аватара пользователя
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск

Сообщение WiseLord »

Вопрос по C++.
Интереса ради в своём проекте решил попробовать, для начала просто переименовав main.c в main.cpp. Ну и поправил Makefile.

Результат компиляции до:

Код: Выделить всё

   text	   data	    bss	    dec	    hex	filename
  99188	    408	  14360	 113956	  1bd24	build/ampcontrol_f103_ili9341_spi.elf
Результат компиляции после:

Код: Выделить всё

   text	   data	    bss	    dec	    hex	filename
 103420	    408	  14360	 118188	  1cdac	build/ampcontrol_f103_ili9341_spi.elf
Откуда может вылезти разница в целых 4кБ в размере прошивки? При этом размеры .o файлов в каталоге сборки практически не отличаются, то есть похоже, что это линкер компонует смесь .c и .cpp менее оптимально.

Может, CFLAGS и CPPFLAGS нужно разделить и использовать разные?
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

map-файл почитать, там всё написано.

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

Код: Выделить всё

-fno-exceptions -fno-rtti
Оптимизации что-то не наблюдаю.

Вот ещё. http://we.easyelectronics.ru/AVR/klyuch ... rnika.html
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск

Сообщение WiseLord »

Действительно. С добавлением -fno-exceptions размер стал таким же, как и в оригинальном коде на C.

А -gc-sections сотоварищи уже давно пользуюсь. Собственно, в этом проекте тоже.

Ещё в своё время (да и сейчас попробовал) экспериментировал с -flto (на AVR проектах довольно сильно экономило flash). Но с STM32 как-то всё совсем печально, прошивка на 10% меньше выходит, но получается тупо нерабочей. Правда, сильно разобраться в этом пока не пытался.
Контактная информация:
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

Ну а что бы ему быть другим, если он и есть код на С. :)

А с оптимизатором надо подружиться, конечно. -O3 и -flto хорошая проверка кода на вшивость.
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18790
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

WiseLord писал(а):Но с STM32 как-то всё совсем печально, прошивка на 10% меньше выходит, но получается тупо нерабочей.
насколько я в курсе, LTO для ARM сильно от версии зависит. вот в этой теме много об этом говорилось: https://electronix.ru/forum/index.php?a ... c&id=42167 товарищ klen сборки компиляторов клепает сам по 2 штуки в неделю :) возможно, ваш компилятор просто содержал кривую реализацию LTO...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

Для Cortex-M использовать что-либо отличное от ARM Embedded toolchain это быть ССЗБ. Если речь о GCC конечно.
Друг Кота
Аватара пользователя
Сообщения: 7033
Зарегистрирован: Сб янв 28, 2006 22:47:24

Сообщение Asmodey »

Мне J-Link пришел, а проверить его пока не на чем. STM32 еще в пути, заморачиваться с PIC32 нет никакого желания. С ESP32 вроде можно что-то сделать, но что и как мне пока неизвестно, ибо оно как всегда с ESP32 делается через... задворки.

А нельзя ли им ипромки микрочиповские прошивать? Мне чисто попробовать, работает или нет.
Астролябия-сама меряет, было бы что мерять!!!
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

Установи Segger-овский софт и запусти утилиту jlink.exe. Этого обычно достаточно.
Друг Кота
Аватара пользователя
Сообщения: 7033
Зарегистрирован: Сб янв 28, 2006 22:47:24

Сообщение Asmodey »

Хорошо, попробую. Но, какой именно? Его на сайте сеггера валом софта всякого.
Астролябия-сама меряет, было бы что мерять!!!
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Влад говорит о дровах на jlink, и запускать надо jlink commander...
Друг Кота
Аватара пользователя
Сообщения: 7033
Зарегистрирован: Сб янв 28, 2006 22:47:24

Сообщение Asmodey »

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


P.S. установил приложение, нашел утилиту jlink.exe, запустил. Просит указать устройство/ядро. Чего ему надо? Нужно уточнить на чем собран отладчик?
Астролябия-сама меряет, было бы что мерять!!!
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

С сайта segger качается пакет ПО на J-Link, он там один. Какая версия J-link, что её страшно "запороть"?

Добавлено after 2 minutes 26 seconds:
[uquote="Asmodey",url="/forum/viewtopic.php?p=3714048#p3714048"]Чего ему надо?[/uquote]Забей, всё работает. Жди устройство, которое будешь отлаживать, подключай и работай.
Друг Кота
Аватара пользователя
Сообщения: 7033
Зарегистрирован: Сб янв 28, 2006 22:47:24

Сообщение Asmodey »

Ладно, получу платы с STM, тогда и опробую. Тем более что с почты сегодня звонили, возможно что-то из stm пришло.

[uquote="VladislavS",url="/forum/viewtopic.php?p=3714071#p3714071"]Какая версия J-link, что её страшно "запороть"?[/uquote]
Клон, разумеется.
SEGGER J-Link конфигуратор сообщает что это SEGGER J-Link ARM V8.00
Прошивку боязно обновлять. Много раз читал, как клонированные девайсы дохли после работы с официальным софтом. Не обязательно J-Link, разные другие тоже. Лог. анализаторы, например.
Астролябия-сама меряет, было бы что мерять!!!
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

Дохли клоны на атмеловских чипах, это jlink v8 .
И то с легкостью востанавливались.
JLink на stm не убьешь.
Лог анализаторы на кипарисах так же не дохли, перешивалась епром и ставилась защита на запись...

Кстати, а нахрена ты взял jlink v8???
V9 900 р. всего и никакого геморроя...
Собутыльник Кота
Аватара пользователя
Сообщения: 2567
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

Ну V8 легко поднимается, если что, там SAM-BA есть по USB. Прошивка в сети есть.
Друг Кота
Аватара пользователя
Сообщения: 7033
Зарегистрирован: Сб янв 28, 2006 22:47:24

Сообщение Asmodey »

[uquote="dosikus",url="/forum/viewtopic.php?p=3714300#p3714300"]Кстати, а нахрена ты взял jlink v8???
V9 900 р. всего и никакого геморроя...[/uquote]
Кстати, а где вы раньше были с этим замечанием?
[uquote="VladislavS",url="/forum/viewtopic.php?p=3714307#p3714307"]Ну V8 легко поднимается, если что, там SAM-BA есть по USB. Прошивка в сети есть.[/uquote]
Тогда ладно. Но прошивку все равно буду обновлять только после того, как дерну ногой на МК и отслежу в Keil это самое дрыганье во всех подробностях. А то навалится все сразу, разбери где и в чем косяки...
Астролябия-сама меряет, было бы что мерять!!!
Опытный кот
Аватара пользователя
Сообщения: 791
Зарегистрирован: Вт июн 17, 2014 00:34:26

Сообщение baghear »

Добрый день, при подаче питания stm32f4 сразу появляется потенциал 1.2V на одном из выводов. Этот вывод подключен к транзистору который управляет бузером и последний начинает тихо неприятно пищать. Затвор транзистора подтянут к земле. Подскажите как это вылечить.
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

Получил сегодня девборду на STM32F401 и что-то ума ей не дал: st-flash знать не знает о таком контроллере (возможно, в новых версиях поддержка и появится - не знаю), а openocd ругался, пока я не сделал connection under reset. С какого-то перепуга вот с такой конфигурацией

Код: Выделить всё

openocd -f interface/stlink-v2.cfg -f target/stm32f4x.cfg 
openocd пытается JTAG использовать, а не SWD:

Код: Выделить всё

Error: jtag status contains invalid mode value - communication failure
Polling target stm32f4x.cpu failed, trying to reexamine
Examination failed, GDB will be halted. Polling again in 100ms
ну, да ладно: если никто еще с этими МК не работал, придется годик-другой-третий подождать, пока нормальная поддержка у st-flash появится. Самому патчить st-flash уж очень неохота!
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Ответить

Вернуться в «ARM»