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

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
Oxford
Опытный кот
Сообщения: 819
Зарегистрирован: Вт окт 23, 2012 13:17:25
Откуда: Прокопьевск
Контактная информация:

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

Сообщение Oxford »

[uquote="WiseLord",url="/forum/viewtopic.php?p=3462807#p3462807"]Oxford:
Когда сам уже сто раз подсмотрел в том же CubeMX примеры инициализации периферии, понял принцип (AFIO/тактирование/NVIC) и написал один раз свой аналогичный код, который потом дублируешь в свои проекты, становится очень легко называть использованные инструменты калом и говном. Вроде как сразу ЧСВ повышается до over9000.[/uquote]

Я CubeMX вообще не использовал для написания кода и даже не подсматривал, там нечего смотреть.
В 2013 программировал на SPL немного. Сегодня только CMSIS. NVIC, AFIO легкая фигня, код запуска у Кортексов тоже есть там уже все настроено тактирование, немного можно править под себя делители и все. Читать надо документацию, мануалы и аппноуты. Ну и вообще здесь программисты микроконтроллеров или кухарки готовящие борщ собрались?

[uquote="WiseLord",url="/forum/viewtopic.php?p=3462807#p3462807"]Вроде как сразу ЧСВ повышается до over9000.[/uquote]
Т.е. вы считаете я не важен для форума, я правильно вас понял?
Последний раз редактировалось Oxford Вс сен 23, 2018 10:01:55, всего редактировалось 5 раз.
Инженер R@D

Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

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

Сообщение dosikus »

[uquote="WiseLord",url="/forum/viewtopic.php?p=3462914#p3462914"]Но вот саму последовательность действий - почему бы и не подсмотреть.[/uquote]

Потому что все расписано в RM, надо лишь уметь читать документацию...
http://mcu.goodboard.ru/viewtopic.php?id=11
jcxz
Мудрый кот
Сообщения: 1717
Зарегистрирован: Вт авг 15, 2017 10:51:13

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

Сообщение jcxz »

[uquote="afz",url="/forum/viewtopic.php?p=3462001#p3462001"]Так вот, вечером засек по секундной стрелке часов, когда взморгнуло дважды, утром глянул - расползлось секунд на 20.[/uquote]
Достаточно научиться читать мануалы, открыть Reference manual на МК на разделе "RCC registers". И не придётся ждать полдня.
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

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

Сообщение VladislavS »

[uquote="Sergi",url="/forum/viewtopic.php?p=3462856#p3462856"]В ранних версиях KEILа в файле system_stm32fxxxx легко можно было править настройку тактирования. Сейчас V5.23.0.0, и настройку провожу в первых строчках main. Также и в IARе.[/uquote]Кто-то сейчас запрещает в SystemInit() или __low_level_init() писать то что вам вздумается?

[uquote="afz",url="/forum/viewtopic.php?p=3462859#p3462859"]
VladislavS писал(а):while(!(RCC->CR & RCC_CR_HSERDY));
Это где такое?[/uquote]В моём сообщении :)

[uquote="afz",url="/forum/viewtopic.php?p=3462859#p3462859"]Я в system_stm32f10x.c нашел только такое:

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

 do
  {
    HSEStatus = RCC->CR & RCC_CR_HSERDY;
    StartUpCounter++; 
  } while((HSEStatus == 0) && (StartUpCounter != HSE_STARTUP_TIMEOUT));
Оно вызывается из SystemInit, которая, в свою очередь, вызывается из startup_stm32f10x_md.s перед вызовом __main.[/uquote]Вы программистом или кладоискателем собираетесь быть? Программы пишут, а не ищут.

VladislavS писал(а):Но ведь все это уже есть в SystemInit(), хотелось бы просто разрулить это грамотно.
Ну так натыкайте галочек в кубе. Или уже и это не получается?
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

jcxz:
Вот только в том же RM0008 (для того же F103) в разделе RCC ничего не сказано про то, что нужно ещё и Flash latency менять. Да, где-то в даташите про это, наверное, говорится, но искать это на 1132 страницах, причём даже не подозревая о такой западне, не так-то просто.

А вот если взглянуть на любой пример кода - пусть даже и CubeMX сгенерённого - сразу становится легче. Вот там можно в мануал и в RCC раздел заглянуть, и по FLASH поискать информацию.

dosikus:
какая-то левая ссылка - это далеко не RM.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

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

Сообщение dosikus »

[uquote="WiseLord",url="/forum/viewtopic.php?p=3462990#p3462990"]какая-то левая ссылка - это далеко не RM.[/uquote]

Вы читать вообще умеете ?
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

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

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

Сообщение dosikus »

WiseLord, а говорите что умеете читать, я где-то написал что там лежит RM?
RM, как и вся документация, лежит на сайте вендора. По ссылке - как читать и где искать

[uquote="WiseLord",url="/forum/viewtopic.php?p=3462990#p3462990"]jcxz:
Вот только в том же RM0008 (для того же F103) в разделе RCC ничего не сказано про то, что нужно ещё и Flash latency менять. Да, где-то в даташите про это, наверное, говорится, но искать это на 1132 страницах, причём даже не подозревая о такой западне, не так-то просто.[/uquote]

Пробовали читать документацию не по диагонали?
Раздел Reading the Flash memory параграфа 3.3.3 Embedded Flash memory находится выше параграфа RCC ...
И писано там следующее:
Reading the Flash memory
Flash memory instructions and data access are performed through the AHB bus. The
prefetch block is used for instruction fetches through the ICode bus. Arbitration is performed
in the Flash memory interface, and priority is given to data access on the DCode bus.
Read accesses can be performed with the following configuration options:
Latency: number of wait states for a read operation programmed on-the-fly
Prefetch buffer (2 x 64-bit blocks): it is enabled after reset; a whole block can be
replaced with a single read from the Flash memory as the size of the block matches the
bandwidth of the Flash memory. Thanks to the prefetch buffer, faster CPU execution is
possible as the CPU fetches one word at a time with the next word readily available in
the prefetch buffer
• Half cycle: for power optimization
Note: These options should be used in accordance with the Flash memory access time. The wait
states represent the ratio of the SYSCLK (system clock) period to the Flash memory access
time:
zero wait state, if 0 < SYSCLK ≤ 24 MHz
one wait state, if 24 MHz < SYSCLK ≤ 48 MHz
two wait states, if 48 MHz < SYSCLK ≤ 72 MHz



ЗЫ Не забудьте поныть - как на авр все было просто и легко.
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

Вот про то я и говорю - человек полезет в раздел RCC, весь его изучит, и не получит результата, потому как, оказывается, нужно ещё и время доступа к памяти программ настроить. А ссылок на это из RCC раздела нет.

Тут-то и спасает пример кода. Пусть и донельзя кривого, но рабочего.

P.S. ссылка на goodboard.ru наконец-то открылась. Можно и почитать.
Последний раз редактировалось WiseLord Вс сен 23, 2018 12:14:35, всего редактировалось 1 раз.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

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

Сообщение dosikus »

WiseLord, латентность флэши разве не относится к настройкам флэши а не тактовой?
Подумайте не спеша...
Аватара пользователя
WiseLord
Друг Кота
Сообщения: 4905
Зарегистрирован: Чт апр 11, 2013 11:19:59
Откуда: Минск
Контактная информация:

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

Сообщение WiseLord »

Конечно.

Но начинающий работать с МК (вроде тема о них) захочет помигать светодиодом для начала, изучит, как ожидается, разделы GPIO и RCC, разберётся даже с тем, что какую-то периферию надо дополнительно тактировать. И результата не получит. Потому что необходимость ещё что-то делать с FLASH далеко не так очевидна.
jcxz
Мудрый кот
Сообщения: 1717
Зарегистрирован: Вт авг 15, 2017 10:51:13

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

Сообщение jcxz »

[uquote="WiseLord",url="/forum/viewtopic.php?p=3462990#p3462990"]Вот только в том же RM0008 (для того же F103) в разделе RCC ничего не сказано про то, что нужно ещё и Flash latency менять. Да, где-то в даташите про это, наверное, говорится, но искать это на 1132 страницах, причём даже не подозревая о такой западне, не так-то просто.[/uquote]
Flash latency нужно менять при смене частоты, а не источника тактирования. И мне кажется само собой разумеющимся, что при смене какой-то частоты тактирования, нужно просмотреть (и переинитить при необходимости) все части МК, которые тактируются этой частотой. Если ты что-то меняешь, то естественно нужно просмотреть все части, на что это изменяемое влияет.
Аватара пользователя
philosoraptor
Прорезались зубы
Сообщения: 225
Зарегистрирован: Сб янв 14, 2012 22:53:50

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

Сообщение philosoraptor »

Что очень характерно, персонажи, пытающиеся прокачать свое чсв, ругая hal, cube и т.п, не понимают даже толком, почему использование while(extPin){;} в нормальном коде недопустимо. В связи с чем вряд ли есть смысл объяснять им рациональные и очевидные вещи.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18544
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

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

Сообщение ARV »

то есть main(void){ while(1);} допустимо, а while(extPin){} не допустимо?
допустимо все, что позволяет достичь желаемого результата.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Sergi
Мучитель микросхем
Сообщения: 412
Зарегистрирован: Ср янв 04, 2012 11:57:40
Откуда: Алчевск

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

Сообщение Sergi »

В своем примере настройку FLASH я добавил позже, когда разогнать ядро выше 55МГц не удалось. Нашел,запустил,запомнил. Теперь действительно слежу за всеми используемыми блоками. Опыт так сказать.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

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

Сообщение dosikus »

[uquote="philosoraptor",url="/forum/viewtopic.php?p=3463065#p3463065"]Что очень характерно, персонажи, пытающиеся прокачать свое чсв, ругая hal, cube и т.п, не понимают даже толком, почему использование while(extPin){;} в нормальном коде недопустимо. В связи с чем вряд ли есть смысл объяснять им рациональные и очевидные вещи.[/uquote]

Рациональный наш, ты умудрился на лету переобуться.
Во первых речь была о флагах статуса SPI о не о состояния пина. Это раз.
А два -калокуб и то что ты называшь "HAL", что на самом деле лишь не нужная прослойка а не HAL, ну ни как не рациональны.

WiseLord, наделать глупостей в калокубе, не изучая железо, намного больше шансов...
pvit
Нашел транзистор. Понюхал.
Сообщения: 191
Зарегистрирован: Вт июн 05, 2018 00:18:01

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

Сообщение pvit »

[uquote="jcxz",url="/forum/viewtopic.php?p=3463054#p3463054"]Flash latency нужно менять при смене частоты, а не источника тактирования. И мне кажется само собой разумеющимся, что при смене какой-то частоты тактирования, нужно просмотреть (и переинитить при необходимости) все части МК, которые тактируются этой частотой. Если ты что-то меняешь, то естественно нужно просмотреть все части, на что это изменяемое влияет.[/uquote]
IMHO не самая продуктивная стратегия. Хотя собственным временем вы конечно вольны распоряжаться как угодно. Я внимательно смотрел код который генерит куб, и прикидывал где понаделал бы ошибок и как надо читать RM чтобы такого не случилось. Получалось, что только учить наизусть.
a5021
Друг Кота
Сообщения: 6452
Зарегистрирован: Пт сен 13, 2013 13:11:31

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

Сообщение a5021 »

[uquote="pvit",url="/forum/viewtopic.php?p=3463189#p3463189"]Я внимательно смотрел код который генерит куб, и прикидывал где понаделал бы ошибок и как надо читать RM чтобы такого не случилось. Получалось, что только учить наизусть.[/uquote]
Вы и с кубом "понаделали ошибок". Я вам на них указывал, но похоже, что вы даже не понимаете, о чем речь. Нафиг вам такое программирование, ума не приложу.
jcxz
Мудрый кот
Сообщения: 1717
Зарегистрирован: Вт авг 15, 2017 10:51:13

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

Сообщение jcxz »

[uquote="pvit",url="/forum/viewtopic.php?p=3463189#p3463189"]IMHO не самая продуктивная стратегия. Хотя собственным временем вы конечно вольны распоряжаться как угодно. Я внимательно смотрел код который генерит куб, и прикидывал где понаделал бы ошибок и как надо читать RM чтобы такого не случилось. Получалось, что только учить наизусть.[/uquote]
Продуктивность ярко видна по форумам: все форумы просто заполнены стонами пользователей всяких калокубов: "нашёл в нете это. прикостылил к себе, что-то понатыкал там и там - не работает! :(( перетыкал по-другому - опять не работает! :((( спасите-помогите - куда ещё потыкать?? - неделю уже бьюсь, а никак не получается! :(((".
И практически ни одного вопроса от тех, кто читает мануалы и разбирается сам без всяких либ.
Это очень показательно. 8)

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

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

Сообщение dosikus »

[uquote="WiseLord",url="/forum/viewtopic.php?p=3463035#p3463035"]P.S. ссылка на goodboard.ru наконец-то открылась. Можно и почитать.[/uquote]

Да бывает форум глючит но не часто, вероятно админ что-то прикручивает.
Ответить

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