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

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
scorpi_0n
Вымогатель припоя
Сообщения: 616
Зарегистрирован: Вс ноя 01, 2015 13:13:49

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

Сообщение scorpi_0n »

a5021 писал(а):Продолжайте. Мне это нравится.
Да кто же спорит, тем более с вами? На ардуино.ру вас вообще обвинили в переписывании инфы с других источников с выдачей за своё. Видать там тоже одни завистники и фэйкомёты.
Реклама
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

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

Сообщение a5021 »

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

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

Сообщение dosikus »

Ну вот, только начал читать опусы 51'ого Наполеона, дык ардуино.сру зависло... :)))

a5021, весьма примечательная у вас там компашка ардуино-адептов, вечных_незнаек.
Смотрю и дигер там и птр ... :))) :))) :)))
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

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

Сообщение a5021 »

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

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

Сообщение dosikus »

Продолжаем читать опусы Наполеона, о "помехоустойчивости" -это просто шедевр , 51ый клоун во всей красе.
Снова неуместные выжимки из документации, не осознаные и непонятые ... :))) :)))
Реклама
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

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

Сообщение a5021 »

Вы бы переводили свой сумбур. Никто ж не поймет.
Реклама
Аватара пользователя
Alexey_N
Сверлит текстолит когтями
Сообщения: 1273
Зарегистрирован: Вт фев 01, 2011 17:56:40
Откуда: г. Жуковка, Брянская обл.

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

Сообщение Alexey_N »

Ну вы тут развели ... :shock:
По теме: пользуюсь fasmarm, там есть директива processor, которой указывается список (битами) возможностей мк, под который программируешь. Так вот, под cortex-m3 я нашел, что это 0x37DA2FE, т.е.
CPU32_CAPABILITY_V1
CPU32_CAPABILITY_V2
CPU32_CAPABILITY_A
CPU32_CAPABILITY_V3
CPU32_CAPABILITY_M
CPU32_CAPABILITY_V4
CPU32_CAPABILITY_V4T
CPU32_CAPABILITY_V5T
CPU32_CAPABILITY_X
CPU32_CAPABILITY_V6T
CPU32_CAPABILITY_ALIGN
CPU32_CAPABILITY_Z
CPU32_CAPABILITY_6M
CPU32_CAPABILITY_7M
CPU32_CAPABILITY_T2
CPU32_CAPABILITY_V7
CPU32_CAPABILITY_DIV
CPU32_CAPABILITY_T2EE
Возникает вопрос, какие значения должны быть для cortex-m0? В частности буду использовать stm32f030f4p6.
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

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

Сообщение oleg110592 »

может поможет - пример когдато для фасма скачал:
Спойлер

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

CPU_CAPABILITY_26BIT            = 1 shl 00
CPU_CAPABILITY_V1               = 1 shl 01
CPU_CAPABILITY_V2               = 1 shl 02
CPU_CAPABILITY_A                = 1 shl 03
CPU_CAPABILITY_V3               = 1 shl 04
CPU_CAPABILITY_M                = 1 shl 05
CPU_CAPABILITY_V4               = 1 shl 06
CPU_CAPABILITY_V4T              = 1 shl 07
CPU_CAPABILITY_V5               = 1 shl 08
CPU_CAPABILITY_V5T              = 1 shl 09
CPU_CAPABILITY_E                = 1 shl 10
CPU_CAPABILITY_P                = 1 shl 11
CPU_CAPABILITY_J                = 1 shl 12
CPU_CAPABILITY_X                = 1 shl 13
CPU_CAPABILITY_V6               = 1 shl 14
CPU_CAPABILITY_V6T              = 1 shl 15
CPU_CAPABILITY_ALIGN            = 1 shl 16
CPU_CAPABILITY_K                = 1 shl 17
CPU_CAPABILITY_Z                = 1 shl 18
CPU_CAPABILITY_6M               = 1 shl 19
CPU_CAPABILITY_7M               = 1 shl 20
CPU_CAPABILITY_T2               = 1 shl 21
CPU_CAPABILITY_V7               = 1 shl 22
CPU_CAPABILITY_SYNC             = 1 shl 23
CPU_CAPABILITY_DIV              = 1 shl 24
CPU_CAPABILITY_T2EE             = 1 shl 25
CPU_CAPABILITY_MP               = 1 shl 26
CPU_CAPABILITY_VE               = 1 shl 27

cortex_m0 = (CPU_CAPABILITY_6M)  + \
	    (CPU_CAPABILITY_V6T) + \
	    (CPU_CAPABILITY_V6)  + \
	    (CPU_CAPABILITY_V4T) + \
	    (CPU_CAPABILITY_V5T) + \
	    (CPU_CAPABILITY_ALIGN)
Аватара пользователя
Alexey_N
Сверлит текстолит когтями
Сообщения: 1273
Зарегистрирован: Вт фев 01, 2011 17:56:40
Откуда: г. Жуковка, Брянская обл.

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

Сообщение Alexey_N »

О! то что нужно, благодарю!
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
Аватара пользователя
Andrew Martin
Вымогатель припоя
Сообщения: 606
Зарегистрирован: Вт июн 25, 2013 18:45:07

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

Сообщение Andrew Martin »

Сейчас это выглядит вот так:

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

CPU_CAPABILITY_26BIT		= 1 shl 00
CPU_CAPABILITY_V1		= 1 shl 01
CPU_CAPABILITY_V2		= 1 shl 02
CPU_CAPABILITY_A		= 1 shl 03
CPU_CAPABILITY_V3		= 1 shl 04
CPU_CAPABILITY_M		= 1 shl 05
CPU_CAPABILITY_V4		= 1 shl 06
CPU_CAPABILITY_V4T		= 1 shl 07
CPU_CAPABILITY_V5		= 1 shl 08
CPU_CAPABILITY_V5T		= 1 shl 09
CPU_CAPABILITY_E		= 1 shl 10
CPU_CAPABILITY_P		= 1 shl 11
CPU_CAPABILITY_J		= 1 shl 12
CPU_CAPABILITY_X		= 1 shl 13
CPU_CAPABILITY_V6		= 1 shl 14
CPU_CAPABILITY_V6T		= 1 shl 15
CPU_CAPABILITY_ALIGN		= 1 shl 16
CPU_CAPABILITY_K		= 1 shl 17
CPU_CAPABILITY_Z		= 1 shl 18
CPU_CAPABILITY_6M		= 1 shl 19
CPU_CAPABILITY_7M		= 1 shl 20
CPU_CAPABILITY_T2		= 1 shl 21
CPU_CAPABILITY_V7		= 1 shl 22
CPU_CAPABILITY_SYNC		= 1 shl 23
CPU_CAPABILITY_DIV		= 1 shl 24
CPU_CAPABILITY_T2EE		= 1 shl 25
CPU_CAPABILITY_MP		= 1 shl 26
CPU_CAPABILITY_VE		= 1 shl 27


processor   CPU_CAPABILITY_V4T+\
                 CPU_CAPABILITY_V5T+\
                 CPU_CAPABILITY_6M+\
                 CPU_CAPABILITY_ALIGN+\
                 CPU_CAPABILITY_V6T

CPU_CAPABILITY_V6 для THUMB не применяется.
Просто положу это сюда. Может быть кому-то пригодится.
Вложения
stm32f0_include.zip
(33.77 КБ) 169 скачиваний
Аватара пользователя
Alexey_N
Сверлит текстолит когтями
Сообщения: 1273
Зарегистрирован: Вт фев 01, 2011 17:56:40
Откуда: г. Жуковка, Брянская обл.

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

Сообщение Alexey_N »

Конечно пригодится! :) Посмотрел, да, действительно, инструкций V6 у cm0 нет, это арм инструкции.
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
Аватара пользователя
Andrew Martin
Вымогатель припоя
Сообщения: 606
Зарегистрирован: Вт июн 25, 2013 18:45:07

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

Сообщение Andrew Martin »

Возможно кому-нибудь пригодится, если выложите свои include для fasmarm под М3. Перевод сишных хедеров - кропотливое дело.
Аватара пользователя
Alexey_N
Сверлит текстолит когтями
Сообщения: 1273
Зарегистрирован: Вт фев 01, 2011 17:56:40
Откуда: г. Жуковка, Брянская обл.

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

Сообщение Alexey_N »

Вот под m3 мой, перед директивой include с ним необходимо объявить один из символов
; STM32F10X_LD - STM32 Low density devices
; STM32F10X_LD_VL - STM32 Low density Value Line devices
; STM32F10X_MD - STM32 Medium density devices
; STM32F10X_MD_VL - STM32 Medium density Value Line devices
; STM32F10X_HD - STM32 High density devices
; STM32F10X_HD_VL - STM32 High density value line devices
; STM32F10X_XL - STM32 XL-density devices
; STM32F10X_CL - STM32 Connectivity line devices
Например для STM32F103CBT6:
define STM32F10X_MD 1
include 'include\equates\stm32f10x.inc'
Вложения
stm32f10x.zip
(51.45 КБ) 160 скачиваний
Индукционный нагреватель - 20% (наладка). TIG сварка - 10% (детальки)
ВЧ генератор 150МГц - 80% (наладка). Мостовой ИИП - 40% (подкл. ОС).
Аватара пользователя
aam
Собутыльник Кота
Сообщения: 2994
Зарегистрирован: Сб фев 20, 2010 14:00:12
Откуда: Москва

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

Сообщение aam »

И снова я с УАРТом...

В снипетсах и в даташите в приложении есть такой код:

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

  USART1->CR1 = USART_CR1_TE | USART_CR1_RXNEIE | USART_CR1_RE | USART_CR1_UE; /* (3) */
  
  while((USART1->ISR & USART_ISR_TC) != USART_ISR_TC)/* polling idle frame Transmission */
  { 
    /* add time out here for a robust application */
  }
  USART1->ICR |= USART_ICR_TCCF;/* Clear TC flag */
  USART1->CR1 |= USART_CR1_TCIE;/* Enable TC interrupt */
Поясните пожалуйста, в чем смысл ожидания флага TC в ISR после включения УАРТ?
Читаю даташит RM0360 - там на стр. 601 есть диаграмма как все эти биты ставятся. Так вот ТС сразу после включения равен 0. С таким кодом как бы долго прождать можно :) И что за пустой фрейм там может передаваться, который надо ждать? Откуда и при каких обстоятельствах он появляется?
Можно ли СТАВИТЬ бит UE в CR1 одной командой с другими битами этого регистра? Или же лучше сначала поставить биты, а потом отдельной командой включить УАРТ?
Последний раз редактировалось aam Пт ноя 04, 2016 19:41:03, всего редактировалось 1 раз.
https
Родился
Сообщения: 11
Зарегистрирован: Вс окт 30, 2016 21:33:31

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

Сообщение https »

Smart Card Interface
Как такое http://zkread.com/article/581417.html сделать на f407vg?
Аватара пользователя
oleg110592
Друг Кота
Сообщения: 3832
Зарегистрирован: Сб сен 10, 2011 17:46:25

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

Сообщение oleg110592 »

aam писал(а):Так вот ТС сразу после включения равен 0
разве?
Изображение
Аватара пользователя
aam
Собутыльник Кота
Сообщения: 2994
Зарегистрирован: Сб фев 20, 2010 14:00:12
Откуда: Москва

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

Сообщение aam »

Виноват, и вправду :facepalm:
Но про остальное вопрос открыт. Откуда может браться пустой фрейм?
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

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

Сообщение a5021 »

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

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

Сообщение aam »

В общем, завел я этот УАРТ пользуясь чисто регистрами и дефайнами из stm32f0xx.h. Если разобраться, не так уж и сложно все оказывается. Только даташит читать муторно очень. При этом памяти ушло около 1700 байт и видно что вообще в проце происходит. Также очень помогли снипетсы с оф. сайта. С SPL чуть ли не 3500 выходило. Да еще вопрос в чем проще разобраться - в даташите или в этой SPL. По мне так в даташите проще. По приколу пробовал посмотреть размер кода на HAL, выдаваемого CubeMX (UART, АЦП, SPI) - с максимальной оптимизацией по размеру выходило 7,5 Кб (без "полезного" пользовательского кода) :))
Аватара пользователя
Мурик
Друг Кота
Сообщения: 3383
Зарегистрирован: Пн окт 11, 2010 19:00:08

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

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

aam писал(а):По приколу пробовал посмотреть размер кода на HAL, выдаваемого CubeMX (UART, АЦП, SPI) - с максимальной оптимизацией по размеру выходило 7,5 Кб (без "полезного" пользовательского кода)
:shock: :shock:
Видимо у нас разные компиляторы. Проделал тоже самое (тоже по приколу :) ) размер прошивки получился намного меньше - 3568 байт.

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

Program size (bytes):    3556
Data size    (bytes):      12
BSS size     (bytes):    1856

Total size   (bytes):    5424   (R/W Memory: 1868)
Ответить

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