STM32 новичку в ARM что к чему
- Oxford
- Опытный кот
- Сообщения: 819
- Зарегистрирован: Вт окт 23, 2012 13:17:25
- Откуда: Прокопьевск
- Контактная информация:
Re: STM32 новичку в ARM что к чему
[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]
Т.е. вы считаете я не важен для форума, я правильно вас понял?
Когда сам уже сто раз подсмотрел в том же 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
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Re: STM32 новичку в ARM что к чему
[uquote="WiseLord",url="/forum/viewtopic.php?p=3462914#p3462914"]Но вот саму последовательность действий - почему бы и не подсмотреть.[/uquote]
Потому что все расписано в RM, надо лишь уметь читать документацию...
http://mcu.goodboard.ru/viewtopic.php?id=11
Потому что все расписано в RM, надо лишь уметь читать документацию...
http://mcu.goodboard.ru/viewtopic.php?id=11
Re: STM32 новичку в ARM что к чему
[uquote="afz",url="/forum/viewtopic.php?p=3462001#p3462001"]Так вот, вечером засек по секундной стрелке часов, когда взморгнуло дважды, утром глянул - расползлось секунд на 20.[/uquote]
Достаточно научиться читать мануалы, открыть Reference manual на МК на разделе "RCC registers". И не придётся ждать полдня.
Достаточно научиться читать мануалы, открыть Reference manual на МК на разделе "RCC registers". И не придётся ждать полдня.
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: STM32 новичку в ARM что к чему
[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"]
[uquote="afz",url="/forum/viewtopic.php?p=3462859#p3462859"]Я в system_stm32f10x.c нашел только такое:
Оно вызывается из SystemInit, которая, в свою очередь, вызывается из startup_stm32f10x_md.s перед вызовом __main.[/uquote]Вы программистом или кладоискателем собираетесь быть? Программы пишут, а не ищут.
[uquote="afz",url="/forum/viewtopic.php?p=3462859#p3462859"]
Это где такое?[/uquote]В моём сообщенииVladislavS писал(а):while(!(RCC->CR & RCC_CR_HSERDY));
[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));Ну так натыкайте галочек в кубе. Или уже и это не получается?VladislavS писал(а):Но ведь все это уже есть в SystemInit(), хотелось бы просто разрулить это грамотно.
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: STM32 новичку в ARM что к чему
jcxz:
Вот только в том же RM0008 (для того же F103) в разделе RCC ничего не сказано про то, что нужно ещё и Flash latency менять. Да, где-то в даташите про это, наверное, говорится, но искать это на 1132 страницах, причём даже не подозревая о такой западне, не так-то просто.
А вот если взглянуть на любой пример кода - пусть даже и CubeMX сгенерённого - сразу становится легче. Вот там можно в мануал и в RCC раздел заглянуть, и по FLASH поискать информацию.
dosikus:
какая-то левая ссылка - это далеко не RM.
Вот только в том же RM0008 (для того же F103) в разделе RCC ничего не сказано про то, что нужно ещё и Flash latency менять. Да, где-то в даташите про это, наверное, говорится, но искать это на 1132 страницах, причём даже не подозревая о такой западне, не так-то просто.
А вот если взглянуть на любой пример кода - пусть даже и CubeMX сгенерённого - сразу становится легче. Вот там можно в мануал и в RCC раздел заглянуть, и по FLASH поискать информацию.
dosikus:
какая-то левая ссылка - это далеко не RM.
Re: STM32 новичку в ARM что к чему
[uquote="WiseLord",url="/forum/viewtopic.php?p=3462990#p3462990"]какая-то левая ссылка - это далеко не RM.[/uquote]
Вы читать вообще умеете ?
Вы читать вообще умеете ?
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: STM32 новичку в ARM что к чему
Несомненно. Потому и говорю - что какая-то левая ссылка на русскоязычный форум, которая к тому же то ли не грузится, то ли ждать приходится больше минуты - это не RM.
Re: STM32 новичку в ARM что к чему
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 ...
И писано там следующее:
ЗЫ Не забудьте поныть - как на авр все было просто и легко.
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 что к чему
Вот про то я и говорю - человек полезет в раздел RCC, весь его изучит, и не получит результата, потому как, оказывается, нужно ещё и время доступа к памяти программ настроить. А ссылок на это из RCC раздела нет.
Тут-то и спасает пример кода. Пусть и донельзя кривого, но рабочего.
P.S. ссылка на goodboard.ru наконец-то открылась. Можно и почитать.
Тут-то и спасает пример кода. Пусть и донельзя кривого, но рабочего.
P.S. ссылка на goodboard.ru наконец-то открылась. Можно и почитать.
Последний раз редактировалось WiseLord Вс сен 23, 2018 12:14:35, всего редактировалось 1 раз.
Re: STM32 новичку в ARM что к чему
WiseLord, латентность флэши разве не относится к настройкам флэши а не тактовой?
Подумайте не спеша...
Подумайте не спеша...
- WiseLord
- Друг Кота
- Сообщения: 4905
- Зарегистрирован: Чт апр 11, 2013 11:19:59
- Откуда: Минск
- Контактная информация:
Re: STM32 новичку в ARM что к чему
Конечно.
Но начинающий работать с МК (вроде тема о них) захочет помигать светодиодом для начала, изучит, как ожидается, разделы GPIO и RCC, разберётся даже с тем, что какую-то периферию надо дополнительно тактировать. И результата не получит. Потому что необходимость ещё что-то делать с FLASH далеко не так очевидна.
Но начинающий работать с МК (вроде тема о них) захочет помигать светодиодом для начала, изучит, как ожидается, разделы GPIO и RCC, разберётся даже с тем, что какую-то периферию надо дополнительно тактировать. И результата не получит. Потому что необходимость ещё что-то делать с FLASH далеко не так очевидна.
Re: STM32 новичку в ARM что к чему
[uquote="WiseLord",url="/forum/viewtopic.php?p=3462990#p3462990"]Вот только в том же RM0008 (для того же F103) в разделе RCC ничего не сказано про то, что нужно ещё и Flash latency менять. Да, где-то в даташите про это, наверное, говорится, но искать это на 1132 страницах, причём даже не подозревая о такой западне, не так-то просто.[/uquote]
Flash latency нужно менять при смене частоты, а не источника тактирования. И мне кажется само собой разумеющимся, что при смене какой-то частоты тактирования, нужно просмотреть (и переинитить при необходимости) все части МК, которые тактируются этой частотой. Если ты что-то меняешь, то естественно нужно просмотреть все части, на что это изменяемое влияет.
Flash latency нужно менять при смене частоты, а не источника тактирования. И мне кажется само собой разумеющимся, что при смене какой-то частоты тактирования, нужно просмотреть (и переинитить при необходимости) все части МК, которые тактируются этой частотой. Если ты что-то меняешь, то естественно нужно просмотреть все части, на что это изменяемое влияет.
- philosoraptor
- Прорезались зубы
- Сообщения: 225
- Зарегистрирован: Сб янв 14, 2012 22:53:50
Re: STM32 новичку в ARM что к чему
Что очень характерно, персонажи, пытающиеся прокачать свое чсв, ругая hal, cube и т.п, не понимают даже толком, почему использование while(extPin){;} в нормальном коде недопустимо. В связи с чем вряд ли есть смысл объяснять им рациональные и очевидные вещи.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18544
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: STM32 новичку в ARM что к чему
то есть main(void){ while(1);} допустимо, а while(extPin){} не допустимо?
допустимо все, что позволяет достичь желаемого результата.
допустимо все, что позволяет достичь желаемого результата.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: STM32 новичку в ARM что к чему
В своем примере настройку FLASH я добавил позже, когда разогнать ядро выше 55МГц не удалось. Нашел,запустил,запомнил. Теперь действительно слежу за всеми используемыми блоками. Опыт так сказать.
Re: STM32 новичку в ARM что к чему
[uquote="philosoraptor",url="/forum/viewtopic.php?p=3463065#p3463065"]Что очень характерно, персонажи, пытающиеся прокачать свое чсв, ругая hal, cube и т.п, не понимают даже толком, почему использование while(extPin){;} в нормальном коде недопустимо. В связи с чем вряд ли есть смысл объяснять им рациональные и очевидные вещи.[/uquote]
Рациональный наш, ты умудрился на лету переобуться.
Во первых речь была о флагах статуса SPI о не о состояния пина. Это раз.
А два -калокуб и то что ты называшь "HAL", что на самом деле лишь не нужная прослойка а не HAL, ну ни как не рациональны.
WiseLord, наделать глупостей в калокубе, не изучая железо, намного больше шансов...
Рациональный наш, ты умудрился на лету переобуться.
Во первых речь была о флагах статуса SPI о не о состояния пина. Это раз.
А два -калокуб и то что ты называшь "HAL", что на самом деле лишь не нужная прослойка а не HAL, ну ни как не рациональны.
WiseLord, наделать глупостей в калокубе, не изучая железо, намного больше шансов...
Re: STM32 новичку в ARM что к чему
[uquote="jcxz",url="/forum/viewtopic.php?p=3463054#p3463054"]Flash latency нужно менять при смене частоты, а не источника тактирования. И мне кажется само собой разумеющимся, что при смене какой-то частоты тактирования, нужно просмотреть (и переинитить при необходимости) все части МК, которые тактируются этой частотой. Если ты что-то меняешь, то естественно нужно просмотреть все части, на что это изменяемое влияет.[/uquote]
IMHO не самая продуктивная стратегия. Хотя собственным временем вы конечно вольны распоряжаться как угодно. Я внимательно смотрел код который генерит куб, и прикидывал где понаделал бы ошибок и как надо читать RM чтобы такого не случилось. Получалось, что только учить наизусть.
IMHO не самая продуктивная стратегия. Хотя собственным временем вы конечно вольны распоряжаться как угодно. Я внимательно смотрел код который генерит куб, и прикидывал где понаделал бы ошибок и как надо читать RM чтобы такого не случилось. Получалось, что только учить наизусть.
Re: STM32 новичку в ARM что к чему
[uquote="pvit",url="/forum/viewtopic.php?p=3463189#p3463189"]Я внимательно смотрел код который генерит куб, и прикидывал где понаделал бы ошибок и как надо читать RM чтобы такого не случилось. Получалось, что только учить наизусть.[/uquote]
Вы и с кубом "понаделали ошибок". Я вам на них указывал, но похоже, что вы даже не понимаете, о чем речь. Нафиг вам такое программирование, ума не приложу.
Вы и с кубом "понаделали ошибок". Я вам на них указывал, но похоже, что вы даже не понимаете, о чем речь. Нафиг вам такое программирование, ума не приложу.
Re: STM32 новичку в ARM что к чему
[uquote="pvit",url="/forum/viewtopic.php?p=3463189#p3463189"]IMHO не самая продуктивная стратегия. Хотя собственным временем вы конечно вольны распоряжаться как угодно. Я внимательно смотрел код который генерит куб, и прикидывал где понаделал бы ошибок и как надо читать RM чтобы такого не случилось. Получалось, что только учить наизусть.[/uquote]
Продуктивность ярко видна по форумам: все форумы просто заполнены стонами пользователей всяких калокубов: "нашёл в нете это. прикостылил к себе, что-то понатыкал там и там - не работает!
( перетыкал по-другому - опять не работает!
(( спасите-помогите - куда ещё потыкать?? - неделю уже бьюсь, а никак не получается!
((".
И практически ни одного вопроса от тех, кто читает мануалы и разбирается сам без всяких либ.
Это очень показательно.
И сделать кое-как, по-быстрому не разбираясь - это значит - переделывать потом и ещё и ещё. И в результате потратить много больше времени, чем если прочитать доки и сделать сразу нормально. Так что если важно время и оно ценно - то никаких калокубов однозначно!
Продуктивность ярко видна по форумам: все форумы просто заполнены стонами пользователей всяких калокубов: "нашёл в нете это. прикостылил к себе, что-то понатыкал там и там - не работает!
И практически ни одного вопроса от тех, кто читает мануалы и разбирается сам без всяких либ.
Это очень показательно.
И сделать кое-как, по-быстрому не разбираясь - это значит - переделывать потом и ещё и ещё. И в результате потратить много больше времени, чем если прочитать доки и сделать сразу нормально. Так что если важно время и оно ценно - то никаких калокубов однозначно!
Re: STM32 новичку в ARM что к чему
[uquote="WiseLord",url="/forum/viewtopic.php?p=3463035#p3463035"]P.S. ссылка на goodboard.ru наконец-то открылась. Можно и почитать.[/uquote]
Да бывает форум глючит но не часто, вероятно админ что-то прикручивает.
Да бывает форум глючит но не часто, вероятно админ что-то прикручивает.