Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

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

Пт дек 28, 2018 11:20:45

так и делаю - реинит, активация CS и потом старт передачи. И в начале первого байта имею хрень. На скрине и в коде ведь все видно - в коде кс включается после инита, а на скрине мусор после опускания кс.

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

Сб дек 29, 2018 13:50:05

Вычитал, что есть такая штука у кортексов как bit-banding. А вот вопрос у stm32f0/1 оно есть? И как его можно в коде нормально написать? не писать же #define xxx (*((volatile uint8_t *)(0x420034673640))).

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

Сб дек 29, 2018 18:28:16

uldemir, не трать время. Для доступа к ногам пользуйся регистрами BSRR и BRR.

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

Сб дек 29, 2018 18:47:04

Ну а всё же? Собственно, этот вопрос не совсем по теме stm. С этим bit-band -ом столкнулся в MSP432... Есть какие общие принципы как именованно обратиться к этим регистрам? В лекции только и написано, что адрес сдвинуть на 5 бит, разряд на 1 (или 2?) и прибавить 0x42000000. Но адреса в голове как-то не держатся.

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

Сб дек 29, 2018 20:39:13

Ты программу в голове что-ли выполняешь? Написал один раз макрос и пользуйся. Компилятор всё сам посчитает.

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

Сб дек 29, 2018 21:11:19

Ай, ладно, не трудитесь... сам разберусь.

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

Вс дек 30, 2018 00:26:59

У F0 его отродясь небыло ...
А VladislavS прав...

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

Вс дек 30, 2018 05:18:32

Он наверно про технику доступа к отдельным битам в памяти. Регионы.

В F1 есть BitBanding

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

Вс дек 30, 2018 07:01:00

Нет, меня интересовало как написать это обращение без магических цифр. Оказалось, что есть макрос. Только у каждого производителя он называется по-своему. У TI (собственно, я сейчас развлекаюсь с MSP432P401R и у него нет BSRR) BITBAND_PERI и BITBAND_SRAM. У ST - BIT_BAND_PER и BIT_BAND_SRAM.

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

Вс дек 30, 2018 13:24:37

Вычитал, что есть такая штука у кортексов как bit-banding.

Есть.

А вот вопрос у stm32f0/1 оно есть?

У F0 нету, у F1 есть.

И как его можно в коде нормально написать? не писать же #define xxx (*((volatile uint8_t *)(0x420034673640))).

Здесь вопрос не понятен. Что вы хотите запрограммировать.

ST - BIT_BAND_PER и BIT_BAND_SRAM.

Это вы где вычитали?

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

Вс дек 30, 2018 13:44:07

Это допрос? в гугле нашел ссылку на какую-то статью про bit-band на stm32. Вкладку уже закрыл, потому не скажу точно где. Сам не проверял, но по образцу поискал в хидерах на msp432. Собственно, я для себя уже нашел и понял как красиво можно это описать.

Открыл кейл с проектом на stm32f103 - не нашел такой макрос. Только один #define PERIPH_BB_BASE ((uint32_t)0x42000000). Странно. Ну ничего, понадобится - нарисую.

сорри, ютубу не воспринимаю.
Последний раз редактировалось uldemir Вс дек 30, 2018 13:57:11, всего редактировалось 2 раз(а).

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

Вс дек 30, 2018 13:52:16

https://www.youtube.com/watch?v=d1vRLfuF-wM

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

Ср янв 02, 2019 15:39:36

Прошу прощения... Только начал изучать.

1. Скажите, правильно ли я понимаю, что SPL - стандартная библиотека для периферии, и написана она с ошибками рукожопыми индусами? Используется для упрощенного конфигурирования и написания программ для микроконтроллеров, однако, тем же самым сама усложняет все, т.к. в ней самой надо еще умудриться разобраться? Тем более, он еще и размеры кода жутко увеличивает , и лучше бы ее вообще не использовать никогда.

2. что HAL по сути тоже самое?

3. Что КубМХ это просто удобная программка, которая делает тоже самое, на основе верхних библиотек, просто наглядно, но еще более рукожопо? Зато действительно наглядно. Потом создает код, который можно воткнуть уже в любую IDE. Он еще и из инета качает...

И если исключить все, что выше, то можно и руками все написать, однако все адреса, прерывания и тому подобное будет такой геморр написать, а еще и выкопать их в мануали почти в 1000 страниц... , что с АРМ ядром лучше вообще не связываться? :shock:

4. Существует несколько ИДЭ под разные платформы, здесь на вкус и цвет товарищей нет. И вопрос холиварный.

5. Существует также Кортекс-М0, М3, М4, две из которых последние есть у меня в наличии. одну я знаю куда хочу прикрутить, и побаловаться с нею, если у меня хватит силы воли изучить, а вот вторую даже представить не могу. Тем более это уже другой М, а значит изучать надо по новой все?

З.Ы. И если всем этим не пользоваться, то еще и никто больше не поймет твою писанину, т.к. ты отошел от стандартов. А раз так, то все эти названия типа ХАЛ_ПОРТ_ПИН13_ВКЛЮЧИТЬвПУШПУЛ в другой интрепретации никто больше в мире не поймет, т.к. все привыкли к тем, что даны по умолчанию? Просто интересно. ))))

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

Ср янв 02, 2019 16:07:45

СКАЗОЧНИК писал(а):SPL - стандартная библиотека для периферии, и написана она с ошибками рукожопыми индусами?
SPL это периферийная библиотека и написана она нормально, особенно если сравнивать с HAL.

СКАЗОЧНИК писал(а):однако, тем же самым сама усложняет все
Это не так. Вообще где вы такое услышали или прочитали? В сети много чего пишут и вы всему верите?

СКАЗОЧНИК писал(а):Тем более, он еще и размеры кода жутко увеличивает
Размер кода увеличивает, но не на много. Конфигурация периферии обычно занимает небольшую часть программы.

СКАЗОЧНИК писал(а):а вот вторую даже представить не могу. Тем более это уже другой М, а значит изучать надо по новой все?
Все не так сложно. Один из примеров. Изначально создавал проект для M3, потом понадобилось упростить и перенес на M0, а потом в другом проекте для M4 использовал много кода из первоначального проекта и перенесенного на M0. Не скажу что было сложно переносить. Потребовалась небольшая корректировка кода конфигурации GPIO и DMA а все остальное без изменений насколько помню. Использовал SPL.

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

Ср янв 02, 2019 16:15:37

будет такой геморр написать

Да не то чтобы адрес узнать гемор. Периферия сложновата, и чтобы приемлемо по качеству/скорости писать нужно на интуитивном уровне понимать как оно все работает и кто кому там может мешать. В кубе удобно распределить ресурсы - что включить, что не включать, одна периферия блокирует ноги другой. Там это все ясно через пару минут. С HAL в принципе проблем (у меня) нет. Оно может и не идеальное с чисто спортивной точки зрения, но работает.

Кстати, если кто помнит я в своем проекте пытался использовать динамику, векторы и стринги. В итоге динамику выпилил и переделал инициализацию через отдельный метод - так понятнее куда и кому ушла оперативка. Векторы выпилил - жрет кучу оператвы. Оставил только в одном месте, где без него неудобно шо капец. Со стрингами была беда какая-то. Прошивка работала. Я в коде добавил варианов в свич с присвоением строк в стринг. И у меня не хватило никакой памяти. Может компилятор пытался прикинуть размер стринга по сумме всех строчек, не знаю. За вечер написал свой стринг со статическим буффером и проблемы кончились. Вот такие вот итоги года.

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

Ср янв 02, 2019 16:23:58

Ну... читал много где. Из старых арихвов у Ди-Халта. Вот там и прочно уложилось в голове, что эти библиотеки косячные. Потом из нового на всяких сайтах.
Пока что научился прошивать и стирать с помощью Ст-Линка2 микроконтроллер на платке Блю-Пилл что-ли называется. Китайская.
Хочется нарисовать что-то свое, но страдают знания языка Си и самого МК, однако, второе уже более или менее понятнее становится. Просто в них больше регистров для настройки, чем у АВР. Ну и нюансы по тактированию всего и вся.

З.Ы. С Новым годом!

Добавлено after 5 minutes 31 second:
Так SPL и HAL это одно и тоже? просто разные люди разное сделали?

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

Ср янв 02, 2019 16:33:08

читал много где.
Так SPL и HAL это одно и тоже? просто разные люди разное сделали?

Всё что древнее 16 года стараюсь не читать, максимум 15.
Дело как было. Они пилили SPL, ее можно было в проект подключать.
А куб умел только показывать на картинке какие ножки куда подключены и энергопотребление мог посчитать.
Потом они SPL забросили, и сделали HAL и куб научили генерировать код инициализации и создавать проекты под разные среды. И вот так оно живет. Есть еще библиотека LL, ее можно в кубе выбрать. Можно даже что-то халом инициализировать, а что-то ЛЛ-ом.
Текущее состояние СПЛ мне неизвестно, но люди проекты на нем делают, вроде работает.

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

Ср янв 02, 2019 16:40:37

Векторы выпилил - жрет кучу оператвы. Оставил только в одном месте, где без него неудобно шо капец.
Если написал статический стринг, то почему не написать статический vector?

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

Ср янв 02, 2019 16:48:34

Тогда сделайте мигалку.
Потом немного поотлаживайте.
И понимание постепенно придет.

СКАЗОЧНИК писал(а):Из старых арихвов
Прочитайте что в старых архивах про Windows пишут.
СпойлерИзображение
42182698_1239098169_vinda__nadstroyka_nad_dos.jpg
(84.51 KiB) Скачиваний: 35
Пишут что это бесполезная надстройка над DOS. Откажемся от винды и перейдем на DOS?

Ярослав555 писал(а):А куб умел только показывать на картинке какие ножки куда подключены и энергопотребление мог посчитать.
Первые версии куба (тогда он по другому назывался - MicroXplorer) генерировали код с SPL.

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

Ср янв 02, 2019 18:10:47

О! Я уже кое-что начал понимать. )))
Из всех библиотек, которые подключаются к главному файлу, потом используются определенные (как их правильно назвать?) шаблоны. Вот к любому Мэйн фалу надо подключить библиотеку с настройкой тактирования устройств и конфигурации портов ввода-вывода. В общем-то они так и называются, только везде применяются аббревиатуры.
И потом в коде уже если началась строка с RCC и дальше всякая бурда, то эта строка относится к настройке тактирования чего-либо, а если началась строка с GPIO, то это уже настройка портов. ))))
Ответить