STM32 новичку в ARM что к чему
- Ярослав555
- Поставщик валерьянки для Кота
- Сообщения: 2081
- Зарегистрирован: Пт май 31, 2013 17:14:38
- Откуда: Украина, Винница
Re: STM32 новичку в ARM что к чему
так и делаю - реинит, активация CS и потом старт передачи. И в начале первого байта имею хрень. На скрине и в коде ведь все видно - в коде кс включается после инита, а на скрине мусор после опускания кс.
- Реклама
Re: STM32 новичку в ARM что к чему
Вычитал, что есть такая штука у кортексов как bit-banding. А вот вопрос у stm32f0/1 оно есть? И как его можно в коде нормально написать? не писать же #define xxx (*((volatile uint8_t *)(0x420034673640))).
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: STM32 новичку в ARM что к чему
uldemir, не трать время. Для доступа к ногам пользуйся регистрами BSRR и BRR.
Re: STM32 новичку в ARM что к чему
Ну а всё же? Собственно, этот вопрос не совсем по теме stm. С этим bit-band -ом столкнулся в MSP432... Есть какие общие принципы как именованно обратиться к этим регистрам? В лекции только и написано, что адрес сдвинуть на 5 бит, разряд на 1 (или 2?) и прибавить 0x42000000. Но адреса в голове как-то не держатся.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: STM32 новичку в ARM что к чему
Ты программу в голове что-ли выполняешь? Написал один раз макрос и пользуйся. Компилятор всё сам посчитает.
- Реклама
Re: STM32 новичку в ARM что к чему
Ай, ладно, не трудитесь... сам разберусь.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Re: STM32 новичку в ARM что к чему
У F0 его отродясь небыло ...
А VladislavS прав...
А VladislavS прав...
- Oxford
- Опытный кот
- Сообщения: 819
- Зарегистрирован: Вт окт 23, 2012 13:17:25
- Откуда: Прокопьевск
- Контактная информация:
Re: STM32 новичку в ARM что к чему
Он наверно про технику доступа к отдельным битам в памяти. Регионы.
В F1 есть BitBanding
В F1 есть BitBanding
Инженер R@D
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Re: STM32 новичку в ARM что к чему
Нет, меня интересовало как написать это обращение без магических цифр. Оказалось, что есть макрос. Только у каждого производителя он называется по-своему. У TI (собственно, я сейчас развлекаюсь с MSP432P401R и у него нет BSRR) BITBAND_PERI и BITBAND_SRAM. У ST - BIT_BAND_PER и BIT_BAND_SRAM.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
- Oxford
- Опытный кот
- Сообщения: 819
- Зарегистрирован: Вт окт 23, 2012 13:17:25
- Откуда: Прокопьевск
- Контактная информация:
Re: STM32 новичку в ARM что к чему
Есть.Вычитал, что есть такая штука у кортексов как bit-banding.
У F0 нету, у F1 есть.А вот вопрос у stm32f0/1 оно есть?
Здесь вопрос не понятен. Что вы хотите запрограммировать.И как его можно в коде нормально написать? не писать же #define xxx (*((volatile uint8_t *)(0x420034673640))).
Это вы где вычитали?ST - BIT_BAND_PER и BIT_BAND_SRAM.
Инженер R@D
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Re: STM32 новичку в ARM что к чему
Это допрос? в гугле нашел ссылку на какую-то статью про bit-band на stm32. Вкладку уже закрыл, потому не скажу точно где. Сам не проверял, но по образцу поискал в хидерах на msp432. Собственно, я для себя уже нашел и понял как красиво можно это описать.
Открыл кейл с проектом на stm32f103 - не нашел такой макрос. Только один #define PERIPH_BB_BASE ((uint32_t)0x42000000). Странно. Ну ничего, понадобится - нарисую.
сорри, ютубу не воспринимаю.
Открыл кейл с проектом на stm32f103 - не нашел такой макрос. Только один #define PERIPH_BB_BASE ((uint32_t)0x42000000). Странно. Ну ничего, понадобится - нарисую.
сорри, ютубу не воспринимаю.
Последний раз редактировалось uldemir Вс дек 30, 2018 13:57:11, всего редактировалось 2 раза.
А люди посмотрят и скажут: "Собаки летят. Вот и осень."
- Oxford
- Опытный кот
- Сообщения: 819
- Зарегистрирован: Вт окт 23, 2012 13:17:25
- Откуда: Прокопьевск
- Контактная информация:
Re: STM32 новичку в ARM что к чему
Инженер R@D
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
Telegram чат: https://t.me/radiowolf или в поиске приложения @radiowolf. Личка:@cncoxford
- СКАЗОЧНИК
- Идёт направо - песнь заводит, Налево - сказку говорит.
- Сообщения: 5000
- Зарегистрирован: Чт апр 21, 2011 17:55:50
- Откуда: Иркутск
Re: STM32 новичку в ARM что к чему
Прошу прощения... Только начал изучать.
1. Скажите, правильно ли я понимаю, что SPL - стандартная библиотека для периферии, и написана она с ошибками рукожопыми индусами? Используется для упрощенного конфигурирования и написания программ для микроконтроллеров, однако, тем же самым сама усложняет все, т.к. в ней самой надо еще умудриться разобраться? Тем более, он еще и размеры кода жутко увеличивает , и лучше бы ее вообще не использовать никогда.
2. что HAL по сути тоже самое?
3. Что КубМХ это просто удобная программка, которая делает тоже самое, на основе верхних библиотек, просто наглядно, но еще более рукожопо? Зато действительно наглядно. Потом создает код, который можно воткнуть уже в любую IDE. Он еще и из инета качает...
И если исключить все, что выше, то можно и руками все написать, однако все адреса, прерывания и тому подобное будет такой геморр написать, а еще и выкопать их в мануали почти в 1000 страниц... , что с АРМ ядром лучше вообще не связываться?
4. Существует несколько ИДЭ под разные платформы, здесь на вкус и цвет товарищей нет. И вопрос холиварный.
5. Существует также Кортекс-М0, М3, М4, две из которых последние есть у меня в наличии. одну я знаю куда хочу прикрутить, и побаловаться с нею, если у меня хватит силы воли изучить, а вот вторую даже представить не могу. Тем более это уже другой М, а значит изучать надо по новой все?
З.Ы. И если всем этим не пользоваться, то еще и никто больше не поймет твою писанину, т.к. ты отошел от стандартов. А раз так, то все эти названия типа ХАЛ_ПОРТ_ПИН13_ВКЛЮЧИТЬвПУШПУЛ в другой интрепретации никто больше в мире не поймет, т.к. все привыкли к тем, что даны по умолчанию? Просто интересно. ))))
1. Скажите, правильно ли я понимаю, что SPL - стандартная библиотека для периферии, и написана она с ошибками рукожопыми индусами? Используется для упрощенного конфигурирования и написания программ для микроконтроллеров, однако, тем же самым сама усложняет все, т.к. в ней самой надо еще умудриться разобраться? Тем более, он еще и размеры кода жутко увеличивает , и лучше бы ее вообще не использовать никогда.
2. что HAL по сути тоже самое?
3. Что КубМХ это просто удобная программка, которая делает тоже самое, на основе верхних библиотек, просто наглядно, но еще более рукожопо? Зато действительно наглядно. Потом создает код, который можно воткнуть уже в любую IDE. Он еще и из инета качает...
И если исключить все, что выше, то можно и руками все написать, однако все адреса, прерывания и тому подобное будет такой геморр написать, а еще и выкопать их в мануали почти в 1000 страниц... , что с АРМ ядром лучше вообще не связываться?
4. Существует несколько ИДЭ под разные платформы, здесь на вкус и цвет товарищей нет. И вопрос холиварный.
5. Существует также Кортекс-М0, М3, М4, две из которых последние есть у меня в наличии. одну я знаю куда хочу прикрутить, и побаловаться с нею, если у меня хватит силы воли изучить, а вот вторую даже представить не могу. Тем более это уже другой М, а значит изучать надо по новой все?
З.Ы. И если всем этим не пользоваться, то еще и никто больше не поймет твою писанину, т.к. ты отошел от стандартов. А раз так, то все эти названия типа ХАЛ_ПОРТ_ПИН13_ВКЛЮЧИТЬвПУШПУЛ в другой интрепретации никто больше в мире не поймет, т.к. все привыкли к тем, что даны по умолчанию? Просто интересно. ))))
Станислав
Re: STM32 новичку в ARM что к чему
SPL это периферийная библиотека и написана она нормально, особенно если сравнивать с HAL.СКАЗОЧНИК писал(а):SPL - стандартная библиотека для периферии, и написана она с ошибками рукожопыми индусами?
Это не так. Вообще где вы такое услышали или прочитали? В сети много чего пишут и вы всему верите?СКАЗОЧНИК писал(а):однако, тем же самым сама усложняет все
Размер кода увеличивает, но не на много. Конфигурация периферии обычно занимает небольшую часть программы.СКАЗОЧНИК писал(а):Тем более, он еще и размеры кода жутко увеличивает
Все не так сложно. Один из примеров. Изначально создавал проект для M3, потом понадобилось упростить и перенес на M0, а потом в другом проекте для M4 использовал много кода из первоначального проекта и перенесенного на M0. Не скажу что было сложно переносить. Потребовалась небольшая корректировка кода конфигурации GPIO и DMA а все остальное без изменений насколько помню. Использовал SPL.СКАЗОЧНИК писал(а):а вот вторую даже представить не могу. Тем более это уже другой М, а значит изучать надо по новой все?
- Ярослав555
- Поставщик валерьянки для Кота
- Сообщения: 2081
- Зарегистрирован: Пт май 31, 2013 17:14:38
- Откуда: Украина, Винница
Re: STM32 новичку в ARM что к чему
[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3539808#p3539808"]будет такой геморр написать[/uquote]
Да не то чтобы адрес узнать гемор. Периферия сложновата, и чтобы приемлемо по качеству/скорости писать нужно на интуитивном уровне понимать как оно все работает и кто кому там может мешать. В кубе удобно распределить ресурсы - что включить, что не включать, одна периферия блокирует ноги другой. Там это все ясно через пару минут. С HAL в принципе проблем (у меня) нет. Оно может и не идеальное с чисто спортивной точки зрения, но работает.
Кстати, если кто помнит я в своем проекте пытался использовать динамику, векторы и стринги. В итоге динамику выпилил и переделал инициализацию через отдельный метод - так понятнее куда и кому ушла оперативка. Векторы выпилил - жрет кучу оператвы. Оставил только в одном месте, где без него неудобно шо капец. Со стрингами была беда какая-то. Прошивка работала. Я в коде добавил варианов в свич с присвоением строк в стринг. И у меня не хватило никакой памяти. Может компилятор пытался прикинуть размер стринга по сумме всех строчек, не знаю. За вечер написал свой стринг со статическим буффером и проблемы кончились. Вот такие вот итоги года.
Да не то чтобы адрес узнать гемор. Периферия сложновата, и чтобы приемлемо по качеству/скорости писать нужно на интуитивном уровне понимать как оно все работает и кто кому там может мешать. В кубе удобно распределить ресурсы - что включить, что не включать, одна периферия блокирует ноги другой. Там это все ясно через пару минут. С HAL в принципе проблем (у меня) нет. Оно может и не идеальное с чисто спортивной точки зрения, но работает.
Кстати, если кто помнит я в своем проекте пытался использовать динамику, векторы и стринги. В итоге динамику выпилил и переделал инициализацию через отдельный метод - так понятнее куда и кому ушла оперативка. Векторы выпилил - жрет кучу оператвы. Оставил только в одном месте, где без него неудобно шо капец. Со стрингами была беда какая-то. Прошивка работала. Я в коде добавил варианов в свич с присвоением строк в стринг. И у меня не хватило никакой памяти. Может компилятор пытался прикинуть размер стринга по сумме всех строчек, не знаю. За вечер написал свой стринг со статическим буффером и проблемы кончились. Вот такие вот итоги года.
- СКАЗОЧНИК
- Идёт направо - песнь заводит, Налево - сказку говорит.
- Сообщения: 5000
- Зарегистрирован: Чт апр 21, 2011 17:55:50
- Откуда: Иркутск
Re: STM32 новичку в ARM что к чему
Ну... читал много где. Из старых арихвов у Ди-Халта. Вот там и прочно уложилось в голове, что эти библиотеки косячные. Потом из нового на всяких сайтах.
Пока что научился прошивать и стирать с помощью Ст-Линка2 микроконтроллер на платке Блю-Пилл что-ли называется. Китайская.
Хочется нарисовать что-то свое, но страдают знания языка Си и самого МК, однако, второе уже более или менее понятнее становится. Просто в них больше регистров для настройки, чем у АВР. Ну и нюансы по тактированию всего и вся.
З.Ы. С Новым годом!
Добавлено after 5 minutes 31 second:
Так SPL и HAL это одно и тоже? просто разные люди разное сделали?
Пока что научился прошивать и стирать с помощью Ст-Линка2 микроконтроллер на платке Блю-Пилл что-ли называется. Китайская.
Хочется нарисовать что-то свое, но страдают знания языка Си и самого МК, однако, второе уже более или менее понятнее становится. Просто в них больше регистров для настройки, чем у АВР. Ну и нюансы по тактированию всего и вся.
З.Ы. С Новым годом!
Добавлено after 5 minutes 31 second:
Так SPL и HAL это одно и тоже? просто разные люди разное сделали?
Станислав
- Ярослав555
- Поставщик валерьянки для Кота
- Сообщения: 2081
- Зарегистрирован: Пт май 31, 2013 17:14:38
- Откуда: Украина, Винница
Re: STM32 новичку в ARM что к чему
[uquote="СКАЗОЧНИК",url="/forum/viewtopic.php?p=3539826#p3539826"]читал много где.
Так SPL и HAL это одно и тоже? просто разные люди разное сделали?[/uquote]
Всё что древнее 16 года стараюсь не читать, максимум 15.
Дело как было. Они пилили SPL, ее можно было в проект подключать.
А куб умел только показывать на картинке какие ножки куда подключены и энергопотребление мог посчитать.
Потом они SPL забросили, и сделали HAL и куб научили генерировать код инициализации и создавать проекты под разные среды. И вот так оно живет. Есть еще библиотека LL, ее можно в кубе выбрать. Можно даже что-то халом инициализировать, а что-то ЛЛ-ом.
Текущее состояние СПЛ мне неизвестно, но люди проекты на нем делают, вроде работает.
Так SPL и HAL это одно и тоже? просто разные люди разное сделали?[/uquote]
Всё что древнее 16 года стараюсь не читать, максимум 15.
Дело как было. Они пилили SPL, ее можно было в проект подключать.
А куб умел только показывать на картинке какие ножки куда подключены и энергопотребление мог посчитать.
Потом они SPL забросили, и сделали HAL и куб научили генерировать код инициализации и создавать проекты под разные среды. И вот так оно живет. Есть еще библиотека LL, ее можно в кубе выбрать. Можно даже что-то халом инициализировать, а что-то ЛЛ-ом.
Текущее состояние СПЛ мне неизвестно, но люди проекты на нем делают, вроде работает.
Re: STM32 новичку в ARM что к чему
[uquote="Ярослав555",url="/forum/viewtopic.php?p=3539823#p3539823"]Векторы выпилил - жрет кучу оператвы. Оставил только в одном месте, где без него неудобно шо капец.[/uquote]Если написал статический стринг, то почему не написать статический vector?
Re: STM32 новичку в ARM что к чему
Тогда сделайте мигалку.
Потом немного поотлаживайте.
И понимание постепенно придет.
Пишут что это бесполезная надстройка над DOS. Откажемся от винды и перейдем на DOS?
Потом немного поотлаживайте.
И понимание постепенно придет.
Прочитайте что в старых архивах про Windows пишут.СКАЗОЧНИК писал(а):Из старых арихвов
Спойлер
Первые версии куба (тогда он по другому назывался - MicroXplorer) генерировали код с SPL.Ярослав555 писал(а):А куб умел только показывать на картинке какие ножки куда подключены и энергопотребление мог посчитать.
- СКАЗОЧНИК
- Идёт направо - песнь заводит, Налево - сказку говорит.
- Сообщения: 5000
- Зарегистрирован: Чт апр 21, 2011 17:55:50
- Откуда: Иркутск
Re: STM32 новичку в ARM что к чему
О! Я уже кое-что начал понимать. )))
Из всех библиотек, которые подключаются к главному файлу, потом используются определенные (как их правильно назвать?) шаблоны. Вот к любому Мэйн фалу надо подключить библиотеку с настройкой тактирования устройств и конфигурации портов ввода-вывода. В общем-то они так и называются, только везде применяются аббревиатуры.
И потом в коде уже если началась строка с RCC и дальше всякая бурда, то эта строка относится к настройке тактирования чего-либо, а если началась строка с GPIO, то это уже настройка портов. ))))
Из всех библиотек, которые подключаются к главному файлу, потом используются определенные (как их правильно назвать?) шаблоны. Вот к любому Мэйн фалу надо подключить библиотеку с настройкой тактирования устройств и конфигурации портов ввода-вывода. В общем-то они так и называются, только везде применяются аббревиатуры.
И потом в коде уже если началась строка с RCC и дальше всякая бурда, то эта строка относится к настройке тактирования чего-либо, а если началась строка с GPIO, то это уже настройка портов. ))))
Станислав


