так и делаю - реинит, активация CS и потом старт передачи. И в начале первого байта имею хрень. На скрине и в коде ведь все видно - в коде кс включается после инита, а на скрине мусор после опускания кс.
Вычитал, что есть такая штука у кортексов как bit-banding. А вот вопрос у stm32f0/1 оно есть? И как его можно в коде нормально написать? не писать же #define xxx (*((volatile uint8_t *)(0x420034673640))).
_________________ А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Ну а всё же? Собственно, этот вопрос не совсем по теме stm. С этим bit-band -ом столкнулся в MSP432... Есть какие общие принципы как именованно обратиться к этим регистрам? В лекции только и написано, что адрес сдвинуть на 5 бит, разряд на 1 (или 2?) и прибавить 0x42000000. Но адреса в голове как-то не держатся.
_________________ А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Нет, меня интересовало как написать это обращение без магических цифр. Оказалось, что есть макрос. Только у каждого производителя он называется по-своему. У TI (собственно, я сейчас развлекаюсь с MSP432P401R и у него нет BSRR) BITBAND_PERI и BITBAND_SRAM. У ST - BIT_BAND_PER и BIT_BAND_SRAM.
_________________ А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Это допрос? в гугле нашел ссылку на какую-то статью про bit-band на stm32. Вкладку уже закрыл, потому не скажу точно где. Сам не проверял, но по образцу поискал в хидерах на msp432. Собственно, я для себя уже нашел и понял как красиво можно это описать.
Открыл кейл с проектом на stm32f103 - не нашел такой макрос. Только один #define PERIPH_BB_BASE ((uint32_t)0x42000000). Странно. Ну ничего, понадобится - нарисую.
сорри, ютубу не воспринимаю.
_________________ А люди посмотрят и скажут: "Собаки летят. Вот и осень."
Последний раз редактировалось uldemir Вс дек 30, 2018 13:57:11, всего редактировалось 2 раз(а).
1. Скажите, правильно ли я понимаю, что SPL - стандартная библиотека для периферии, и написана она с ошибками рукожопыми индусами? Используется для упрощенного конфигурирования и написания программ для микроконтроллеров, однако, тем же самым сама усложняет все, т.к. в ней самой надо еще умудриться разобраться? Тем более, он еще и размеры кода жутко увеличивает , и лучше бы ее вообще не использовать никогда.
2. что HAL по сути тоже самое?
3. Что КубМХ это просто удобная программка, которая делает тоже самое, на основе верхних библиотек, просто наглядно, но еще более рукожопо? Зато действительно наглядно. Потом создает код, который можно воткнуть уже в любую IDE. Он еще и из инета качает...
И если исключить все, что выше, то можно и руками все написать, однако все адреса, прерывания и тому подобное будет такой геморр написать, а еще и выкопать их в мануали почти в 1000 страниц... , что с АРМ ядром лучше вообще не связываться?
4. Существует несколько ИДЭ под разные платформы, здесь на вкус и цвет товарищей нет. И вопрос холиварный.
5. Существует также Кортекс-М0, М3, М4, две из которых последние есть у меня в наличии. одну я знаю куда хочу прикрутить, и побаловаться с нею, если у меня хватит силы воли изучить, а вот вторую даже представить не могу. Тем более это уже другой М, а значит изучать надо по новой все?
З.Ы. И если всем этим не пользоваться, то еще и никто больше не поймет твою писанину, т.к. ты отошел от стандартов. А раз так, то все эти названия типа ХАЛ_ПОРТ_ПИН13_ВКЛЮЧИТЬвПУШПУЛ в другой интрепретации никто больше в мире не поймет, т.к. все привыкли к тем, что даны по умолчанию? Просто интересно. ))))
SPL - стандартная библиотека для периферии, и написана она с ошибками рукожопыми индусами?
SPL это периферийная библиотека и написана она нормально, особенно если сравнивать с HAL.
СКАЗОЧНИК писал(а):
однако, тем же самым сама усложняет все
Это не так. Вообще где вы такое услышали или прочитали? В сети много чего пишут и вы всему верите?
СКАЗОЧНИК писал(а):
Тем более, он еще и размеры кода жутко увеличивает
Размер кода увеличивает, но не на много. Конфигурация периферии обычно занимает небольшую часть программы.
СКАЗОЧНИК писал(а):
а вот вторую даже представить не могу. Тем более это уже другой М, а значит изучать надо по новой все?
Все не так сложно. Один из примеров. Изначально создавал проект для M3, потом понадобилось упростить и перенес на M0, а потом в другом проекте для M4 использовал много кода из первоначального проекта и перенесенного на M0. Не скажу что было сложно переносить. Потребовалась небольшая корректировка кода конфигурации GPIO и DMA а все остальное без изменений насколько помню. Использовал SPL.
Да не то чтобы адрес узнать гемор. Периферия сложновата, и чтобы приемлемо по качеству/скорости писать нужно на интуитивном уровне понимать как оно все работает и кто кому там может мешать. В кубе удобно распределить ресурсы - что включить, что не включать, одна периферия блокирует ноги другой. Там это все ясно через пару минут. С HAL в принципе проблем (у меня) нет. Оно может и не идеальное с чисто спортивной точки зрения, но работает.
Кстати, если кто помнит я в своем проекте пытался использовать динамику, векторы и стринги. В итоге динамику выпилил и переделал инициализацию через отдельный метод - так понятнее куда и кому ушла оперативка. Векторы выпилил - жрет кучу оператвы. Оставил только в одном месте, где без него неудобно шо капец. Со стрингами была беда какая-то. Прошивка работала. Я в коде добавил варианов в свич с присвоением строк в стринг. И у меня не хватило никакой памяти. Может компилятор пытался прикинуть размер стринга по сумме всех строчек, не знаю. За вечер написал свой стринг со статическим буффером и проблемы кончились. Вот такие вот итоги года.
Ну... читал много где. Из старых арихвов у Ди-Халта. Вот там и прочно уложилось в голове, что эти библиотеки косячные. Потом из нового на всяких сайтах. Пока что научился прошивать и стирать с помощью Ст-Линка2 микроконтроллер на платке Блю-Пилл что-ли называется. Китайская. Хочется нарисовать что-то свое, но страдают знания языка Си и самого МК, однако, второе уже более или менее понятнее становится. Просто в них больше регистров для настройки, чем у АВР. Ну и нюансы по тактированию всего и вся.
З.Ы. С Новым годом!
Добавлено after 5 minutes 31 second: Так SPL и HAL это одно и тоже? просто разные люди разное сделали?
читал много где. Так SPL и HAL это одно и тоже? просто разные люди разное сделали?
Всё что древнее 16 года стараюсь не читать, максимум 15. Дело как было. Они пилили SPL, ее можно было в проект подключать. А куб умел только показывать на картинке какие ножки куда подключены и энергопотребление мог посчитать. Потом они SPL забросили, и сделали HAL и куб научили генерировать код инициализации и создавать проекты под разные среды. И вот так оно живет. Есть еще библиотека LL, ее можно в кубе выбрать. Можно даже что-то халом инициализировать, а что-то ЛЛ-ом. Текущее состояние СПЛ мне неизвестно, но люди проекты на нем делают, вроде работает.
О! Я уже кое-что начал понимать. ))) Из всех библиотек, которые подключаются к главному файлу, потом используются определенные (как их правильно назвать?) шаблоны. Вот к любому Мэйн фалу надо подключить библиотеку с настройкой тактирования устройств и конфигурации портов ввода-вывода. В общем-то они так и называются, только везде применяются аббревиатуры. И потом в коде уже если началась строка с RCC и дальше всякая бурда, то эта строка относится к настройке тактирования чего-либо, а если началась строка с GPIO, то это уже настройка портов. ))))
Сейчас этот форум просматривают: Majestic-12 [Bot] и гости: 35
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения