31.08.2020, 00:23
|
|
Прописка
Регистрация: 27.01.2015
Сообщений: 259
Сказал спасибо: 50
Сказали Спасибо 28 раз(а) в 27 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Честно говоря, я сейчас пока вообще не понимаю, что делаю. Где там Куб, а где еще чего не в курсе совершенно.
P.S. А я действительно лоскутов из Куба надергал? Думал, что CMSIS сама по себе и Куб как надстройка всего лишь использует ее файлы.
|
|
|
|
31.08.2020, 18:31
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Куб - это действительно надстройка, работающая через стандарт CMSIS. CMSIS - это просто стандарт описания регистров и битов. Задача этого стандарта - единообразно и удобоваримо заменить числовые значения адресов регистров и номеров битов на более-менее осмысленные текстовые названия. Вообще, можно как угодно по любому принципу делать, хоть напрямую числами записывать в виде *0x48000400 = 0x001F. Но в CMSIS принято адреса регистров записывать в иерархическом виде с помощью сишных структур, начиная от базового адреса шины, и далее, к базовым адресам периферии, плюс смещение от базового адреса периферии. Через дефайны это всё приводится к простому виду GPIOB-›MODER.
Cube HAL же представляет собой готовые наиболее часто используемые функции в универсальном представлении, в основном, ориентированные на использование в многопоточной операционной системе, отсюда и переизбыточные. Из этого следует, что если уж используете Cube HAL, то пишите на основе него полностью. Иначе это получается наижутчайшая смесь кубовской инициализации и самописного творчества "на регистрах", отчего код получается корявым, потокоопасным и неповоротливым - самый худший вариант.
|
|
|
Эти 2 пользователя(ей) сказали Спасибо NewWriter за это сообщение:
|
|
|
01.09.2020, 02:16
|
|
Прописка
Регистрация: 27.01.2015
Сообщений: 259
Сказал спасибо: 50
Сказали Спасибо 28 раз(а) в 27 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Я уже не в первый раз читаю про CubeMX как про средство "подсмотреть" реализацию обращения к тем или иным регистрам. Но, я пробовал, но тут же запутался в куче файлов, и в глазах рябило от портянок с сотнями закомментированных строк, среди которых нужно найти обращение к тому или иному регистру. Я в этом деле новичок, и мне трудно ориентироваться в замыслах авторов куба и HAL. CMSIS на пару с RM как-то ближе и роднее.
|
|
|
|
01.09.2020, 02:41
|
|
Гуру портала
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,669
Сказал спасибо: 188
Сказали Спасибо 3,188 раз(а) в 2,066 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Ой а то хал поворотливый. Включаешь тупо инит портов и уже 5кБайт кода насрало, а там всего то надо 4 строки руками написать
__________________
кагмаподэ магмаподэ
|
|
|
|
01.09.2020, 20:45
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Реализация в Cube HAL универсальная, на все варианты настройки. Конкретный вариант выбирается программной проверкой конфигурации. К тому же, многие вещи выполнены сразу под многопоточные задачи RTOS, а значит, содержат программные решения, не связанные непосредственно с управляемым периферийным модулем.
И больше всего я не понимаю тех людей, кто инит периферии делает в Кубе, а дальше пишет "на регистрах". Ведь написать инит какого-нить SPI, UART или таймер - это тьфу, несколько строчек. Настройка тактовых частот тоже несложна, особенно для простых МК.
К тому же, вот например я, работая с L-серией, прописываю динамическое управление тактовыми частотами. Причем, это не только изменение умножения PLL, но и быстрое переключение делителя AHB, быстрое переключение MSI, и вообще список конкретных конфигураций, со всеми входящими в них настройками. Такого в Cube HAL нету, поэтому просто пишем свою ф-цию ChangeSystemSpeedFactor(), работающую максимально быстро и строго так, как нам нужно в конкретном проекте. А если например пытаться перейти с 65 кГц на 48 МГц средствами Cube HAL, это ж результатов можно дожидаться до завтрашнего утра, образно говоря. Прикиньте - на 65 кГц прокручивать портянку хала, этож кто ж такое выдержит? А ведь суть динамического управления частотой - быстрый разгон при потребности и быстрое торможение там, где не нужна высокая производительность. Энергопотребление ведь рассчитывается на мегагерц частоты.
|
|
|
Эти 2 пользователя(ей) сказали Спасибо NewWriter за это сообщение:
|
|
|
01.09.2020, 22:03
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,043
Сказал спасибо: 2,559
Сказали Спасибо 11,882 раз(а) в 5,959 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от NewWriter
|
И больше всего я не понимаю тех людей, кто инит периферии делает в Кубе
|
Не хотелось бы идти в очередной виток срача, потому прошу...
Отвечаю на полузаданный вопрос. Я, в основном, так делаю. У меня, в основном, контроллер занят вычислениями и интересует меня его скорострельность. Управления от него - самый мизер, а уж динамичное управление тактированием - вообще пока никогда не надо было. Время на инициализацию мне до барабана.
Вот потому, исходя из удобства, чисто для себя, я поступаю именно так. А могу еще Халовской функцией воспользоваться, если она меня устраивает.
Сколько пользователей - столько и подходов. И шаблон в этом вопросе хорош только по большой нужде (стандартизация и прочее).
Сообщение от NewWriter
|
Да при_чем тут срач, без лично вас срача никакого не возникает, никакого намека на срач, до тех пор, пока вы тут не заявились и не намекнули на начало срача.
|
Срач возникает тогда, когда чел начинает отстаивать свою единственно правильную кочку зрения. Вот от этого я и предупреждал.
Чтобы Вы не извратили очередной раз мною сказанное, сразу скажу, что правильное мнение может быть и не единственным и каждый прав в своем конкретном случае.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
Последний раз редактировалось akegor; 02.09.2020 в 09:12.
|
|
|
|
02.09.2020, 06:21
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Да причем тут срач, без лично вас срача никакого не возникает, никакого намека на срач, до тех пор, пока вы тут не заявились и не намекнули на начало срача. Не можете удержаться от говносрача - не читайте, не встревайте.
Я просто описываю сложности, которые есть при использовании того или иного метода. И если вы с этим не сталкивались, то это еще не значит, что другим тоже наплевать на всё.
И я имею полное право не разделять вашу точку зрения. Если я считаю, что описанное выше - непотребно, значит, оно имеет место быть.
В мощных МК тоже не постоянно нужна максимальная производительность, но на максимальной частоте они потребляют слишком большую мощность (около 0,8 Вт), что слишком разогревает маленький корпус. Поэтому дин.упр.частотой так же немаловажно, как и в L-серии.
Беда akegorа в том, что он не умеет слышать других, и считает, что его потребности - это максимум всего возможного.
Я же рассматриваю вопрос с обеих сторон. И уже описал, что как и где. Hardware Abstraction Level может быть представлен в любом варианте, поэтому Cube HAL - это чисто маркетинговая затея.
И я уже писал, в чем слабые стороны, в чем ограничения. akegor просто тупо уперся рогами в "я так делаю, мне наплевать на всё" и не допускает мысли о том, что помимо него есть куча других людей. Такая упертость - это контрпродуктивно, это деградация профессиональных навыков. Впрочем, это его личное дело, тут никто не посягает на его личные заморочки - akegor в праве делать так, как умеет. Но akegor абсолютно не в праве никому тут указывать, никому не вправе ничего доказывать в том стиле, в котором он делает, ибо его профессиональных навыков уже не хватает для дальнейших обсуждений, что он и подтверждает своими словами "мне наплевать на скорость". Посему, для него выделена специальная тема, свободная от инакомыслящих, вот пусть он в этой теме и сидит, и не мешает другим людям обсуждать насущные проблемы. Как гласит народная мудрость, "всяк сверчок - знай свой шесток" или "тесту место у печи". Ничего личного, просто народная мудрость.
Последний раз редактировалось NewWriter; 03.09.2020 в 21:29.
|
|
|
Сказали "Спасибо" NewWriter
|
|
|
14.09.2020, 11:36
|
|
Почётный гражданин KAZUS.RU
Регистрация: 03.12.2004
Сообщений: 1,306
Сказал спасибо: 337
Сказали Спасибо 76 раз(а) в 33 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Уважаемые, подскажите пожалуйста. В Кейл после компиляции кода появляется закладка Build Output. Там есть такая строчка:
Program Size: Code=8224 RO-data=736 RW-data=172 ZI-data=5996
Я понимаю, что здесь сообщается о том сколько места занимает полученный код. Но что конкретно это означает и в каких единицах измеряется я никак нигде не найду.
|
|
|
|
14.09.2020, 11:59
|
|
Вид на жительство
Регистрация: 27.11.2007
Сообщений: 429
Сказал спасибо: 19
Сказали Спасибо 39 раз(а) в 30 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Сообщение от vladh
|
Code=8224 RO-data=736 RW-data=172 ZI-data=5996
|
https://kazus.ru/forums/showthread.php?t=103107
|
|
|
Эти 2 пользователя(ей) сказали Спасибо sat_art за это сообщение:
|
|
|
22.09.2020, 00:09
|
|
Вид на жительство
Регистрация: 27.11.2007
Сообщений: 429
Сказал спасибо: 19
Сказали Спасибо 39 раз(а) в 30 сообщении(ях)
|
Re: Изучаем STM32 Cortex M3
Блин, сижу втыкаю, как быстрее всего посчитать бит четности слова?
Кто то работал с аппаратным crc в М4? Это возможно?
Последний раз редактировалось sat_art; 22.09.2020 в 01:36.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 13:21.
|
|