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

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
aam
Собутыльник Кота
Сообщения: 2994
Зарегистрирован: Сб фев 20, 2010 14:00:12
Откуда: Москва

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

Сообщение aam »

Только для UARTа?
Я просто в Кубе прикидывал на какой ножке чего будет в моем устройстве и особо не загоняясь попробовал сгенерить проект под IAR. А после открыл проект и скомпилировал "как есть". При включении оптимизации на максимум - 7,5Кб, при отключении - около 9Кб. Соответственно там помимо УАРТа еще и АЦП, ПДП, SPI, 4 канала ШИМа. Если учесть, что у выбранного мной МК 32Кб ПЗУ, то HAL отжирает 25%, с чего я был немного в шоке :facepalm: Я конечно понимаю всю важность написания переносимого кода и все такое, но это может и ничего для какого-нибудь F3xx или F4xx, где поднимают RTOS или даже Линукс, но не на F0 же.
А STM32F030 можно сравнивать примерно с Мега328...Мега64. Никому не приходило же в голову там подобный код писать)
При случае планирую попробовать проц STM32F103 и его USB, незнаю, там хоть есть смысл пробовать HAL использовать?
Реклама
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

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

Сообщение Мурик »

aam писал(а):Только для UARTа?
Нет, для
aam писал(а):UART, АЦП, SPI
Проект прикрепил к сообщению.
aam писал(а):При случае планирую попробовать проц STM32F103 и его USB, незнаю, там хоть есть смысл пробовать HAL использовать?
Если нужен USB то смысл есть. Значительно упростит настройку USB.
Вложения
Test3.zip
(522.23 КБ) 155 скачиваний
Реклама
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

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

Сообщение Reflector »

aam писал(а): При случае планирую попробовать проц STM32F103 и его USB, незнаю, там хоть есть смысл пробовать HAL использовать?
Если скорости F0 хватает, то возможно стоит взять F072, там тот же USB и 128К флеша, при этом с F031 у них один ДШ.
alexf58
Нашел транзистор. Понюхал.
Сообщения: 183
Зарегистрирован: Сб фев 09, 2013 23:00:23

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

Сообщение alexf58 »

Есть еще F070. Там USB работает даже без кварца. Экономия скорее места на плате, чем денег. Куб выдает готовый скелет программы и USB работает там на ура.
Хотя я не сторонник HAL. На 103 неплохо без него получается.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

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

Сообщение oleg110592 »

STM32F042 20 ног - экономия денег и места на плате (тоже без кварца), работает на ура без HAL и SPL, как пример:
http://tomeko.net/miniscope_v2e/
сделано на основе STM32F0x2xx USB FS device library:
http://www.st.com/en/embedded-software/ ... 32092.html
Реклама
Аватара пользователя
aam
Собутыльник Кота
Сообщения: 2994
Зарегистрирован: Сб фев 20, 2010 14:00:12
Откуда: Москва

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

Сообщение aam »

Мурик писал(а):Проект прикрепил к сообщению.
Вот, еще раз проверил, создал проект в Кубе с нуля и скомпилировал:
С максимальной оптимизацией по размеру:

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

  6 760 bytes of readonly  code memory 
     48 bytes of readonly  data memory 
  1 440 bytes of readwrite data memory 
Оптимизация выключена:

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

  8 698 bytes of readonly  code memory 
     96 bytes of readonly  data memory 
  1 440 bytes of readwrite data memory 
Во вложении распиновка МК в Кубе.
Вложения
Cube_F030.zip
(1.24 КБ) 153 скачивания
Реклама
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

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

Сообщение Мурик »

Может это не максимальный уровень оптимизации? Возможно что-то забыли включить?

GCC намного лучше оптимизирует по размеру.

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

Program size (bytes):    4944
Data size    (bytes):      12
BSS size     (bytes):    1976

Total size   (bytes):    6932   (R/W Memory: 1988)
Размер прошивки 4956 байт.
Вложения
Test4.zip
(522.87 КБ) 128 скачиваний
Аватара пользователя
aam
Собутыльник Кота
Сообщения: 2994
Зарегистрирован: Сб фев 20, 2010 14:00:12
Откуда: Москва

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

Сообщение aam »

oleg110592 писал(а):STM32F042 20 ног - экономия денег и места на плате
Reflector писал(а):Если скорости F0 хватает, то возможно стоит взять F072
STM32F042F4P6 127 руб., STM32F103C8T6 - 130 руб. Смысл?
Кстати, там ног надо будет много для подключения 7-сегментников. А что касается быстродействия, со всем этим и Мега справилась бы, только опять же - смысл использовать более дорогой и старый проц?
Вообще, хорошо бы еще попробовать какой-нибудь F3xx, но домашних задач под него пока не вижу, на работе вообще таким даже и не пахнет, а заниматься чем-то абстрактным и бесполезным в практическом плане не люблю. А F103 вроде как очень популярный МК.

Мурик писал(а):Может это не максимальный уровень оптимизации? Возможно что-то забыли включить?
В ИАРе только выбрал микросхему и посмотрел настройку оптимизации в компиляторе. А так, может быть. В сишниках и h не рылся (да и не понимаю пока как HAL настраивать). ИАР считается очень сильно оптимизирующем компилятором. GCC к сожалению, нет под рукой чтоб попробовать.
Вот, наконец смог прикрепить весь проект в ИАР7.5, до этого не прикреплялось:
Вот еще мапинг:
Вложения
Cube_test_map.zip
(3.34 КБ) 125 скачиваний
Cube_F030.zip
(528.56 КБ) 122 скачивания
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

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

Сообщение Reflector »

aam писал(а): STM32F042F4P6 127 руб., STM32F103C8T6 - 130 руб. Смысл?
На али за 120 руб. можно взять F072 на 48 или 64 ног(вот, например). При одинаковом объеме флеша и почти одинаковой RAM, у F072 есть еще DAC, компараторы, 9 таймеров, против 4-х у F103C8, нормальный RTC, USB работающий без кварца, обновленная периферия(GPIO/USART/SPI/ADC), можно емкостные кнопки цеплять и он совместим с твоим F030, т.е. если не использовать HAL, то не придется разбираться с отличиями периферии, а местами они там значительные.
А F103 вроде как очень популярный МК.
Популярный, но несколько устаревший.
Аватара пользователя
aam
Собутыльник Кота
Сообщения: 2994
Зарегистрирован: Сб фев 20, 2010 14:00:12
Откуда: Москва

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

Сообщение aam »

Reflector писал(а):у F072 есть еще DAC
А вот это аргумент!
Reflector писал(а):не придется разбираться с отличиями периферии, а местами они там значительные.
Вот по этому и хотел взять проц из другого семейства, чтобы знать не только F0. Но это еще не скоро, сначала надо F030 разобраться.
Reflector писал(а):Популярный, но несколько устаревший.
Непойму, а что все F1 уже устаревшие? Вообще, я знаю что они появились самыми первыми и некоторые микросхемы сильно кривые. А F0 и F3 появились позже и в них учтены косяки первых STM32. Но F103 вроде не "Not for new design"?
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

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

Сообщение oleg110592 »

aam писал(а):STM32F042F4P6 127 руб., STM32F103C8T6 - 130 руб. Смысл?
у китайцев STM32F103C8T6 $1.36 + кварц + 2 конденсатора = больше места на плате и лишние точки пайки, STM32F042F4P6 $1.17. На производстве имеет смысл. Для домашней поделки - да все едино.
Reflector
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

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

Сообщение Reflector »

aam писал(а):Вот по этому и хотел взять проц из другого семейства, чтобы знать не только F0. Но это еще не скоро, сначала надо F030 разобраться.
Смысл разбираться с устаревшей периферией, которая в таком количестве присутствует только на F1, есть только при намерении работать с F1 :) А для изучения M3/M4 я бы взял тот же F407 или F303, там хоть разница с F0 действительно ощутимая...
Reflector писал(а):Непойму, а что все F1 уже устаревшие? Вообще, я знаю что они появились самыми первыми и некоторые микросхемы сильно кривые. А F0 и F3 появились позже и в них учтены косяки первых STM32. Но F103 вроде не "Not for new design"?
Степень устаревания каждый определяет для себя сам. Лично меня многие вещи в F1 раздражают, но при этом он дешевый и быстрый, многим этого достаточно.
Аватара пользователя
scorpi_0n
Вымогатель припоя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

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

Сообщение scorpi_0n »

aam писал(а):Непойму, а что все F1 уже устаревшие?
Ещё и F2. Согласен с предыдущими ораторами - если под задачу ложится, то пофигу.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

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

Сообщение dosikus »

Мурик писал(а):Может это не максимальный уровень оптимизации? Возможно что-то забыли включить?

GCC намного лучше оптимизирует по размеру.

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

Program size (bytes):    4944
Data size    (bytes):      12
BSS size     (bytes):    1976

Total size   (bytes):    6932   (R/W Memory: 1988)
Размер прошивки 4956 байт.

Офигеть...
PetitFatFS на DMA +выхлоп звука через DMA(два буфера)+ UART с FIFO + еще куча :
Program Size: Code=4704 RO-data=212 RW-data=64 ZI-data=2304
Вы парни явно не умеете готовить...
Аватара пользователя
Alexey_N
Сверлит текстолит когтями
Сообщения: 1273
Зарегистрирован: Вт фев 01, 2011 17:56:40
Откуда: г. Жуковка, Брянская обл.

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

Сообщение Alexey_N »

Такая проблема, компилирую fasmarm'ом такой код под F030:

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

        push    {lr}
        ldr     r1, [_stk_tick]
        ldr     r0, [r1]
        tst     r0, r0
        beq     .continue
        subs    r0, 1
        str     r0, [r1]
    .continue:
        pop     {pc}
Получаю ошибку:

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

include\systick.inc [42]:
        beq     .continue
error: Requires CPU capability 7M, use directive "processor" to select.
Если же метку .continue поставить до инструкции условного перехода beq, то все компилируется без ошибок. В мануале на инструкцию указано, что допускается переход на 254 байт вперед и 256 байт назад от инструкции beq, но почему-то fasmarm считает, что только назад и требует включить 7M набор инструкций ...
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

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

Сообщение Мурик »

dosikus, речь шла о кубике с HAL...
Взять совершенно другой код скомпилировать и выдать результат и я могу, только результат будет некорректным. Проверять степень оптимизации компиляторов нужно на одном и том же коде. Пока что выходит что IAR проигрывает GCC...
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

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

Сообщение dosikus »

Мурик, я тебе и без тестов скажу , ваш кубик из кала дерьмп редкостное.
А вы *ней маетесь ...
Аватара пользователя
aam
Собутыльник Кота
Сообщения: 2994
Зарегистрирован: Сб фев 20, 2010 14:00:12
Откуда: Москва

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

Сообщение aam »

dosikus писал(а):PetitFatFS на DMA +выхлоп звука через DMA(два буфера)+ UART с FIFO + еще куча :
А с использованием чего написано?
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

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

Сообщение dosikus »

С помощью головы и рук, без SPL и калокуба...
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

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

Сообщение Мурик »

dosikus, твое мнение по поводу куба и либ думаю уже все знают. :)))
Но в данном случае речь шла об оптимизации, а не том из чего состоит код. :)
Ответить

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