Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
2 / 2 / 1
Регистрация: 11.07.2016
Сообщений: 152

Устройство памяти в STM32

08.01.2022, 14:05. Показов 3533. Ответов 58
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго дня!!!
Разбираюсь STM32F411 в мануал пишут под GPIOA выделено памяти с адресным пространством с 0х4002 0000-0х4002 03FF если правильно считаю это 1Кб. для конфигурирования GPIOA нам доступны 10 32bitных регистра это 40 байт. Вопрос: Зачем для GPIO столько памяти выделено?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.01.2022, 14:05
Ответы с готовыми решениями:

USB - Составное устройство.. STM32.
Всем привет. Есть задача - подключить к STM32F4 принтер HP, причем принтер не простой, а МФУ, да еще и с картридером.. USB-сниффер...

Выравнивание памяти в stm32
Соственно сабж Нигде не найду как организована память. В документации по этому поводу нашел только, что выбирать из памяти можно...

STM32, динамическое выделение памяти
Доброго времени суток! Никто не работал с динамическим выделением памяти (calloc, malloc, free) на STM32? Пишу в Atotlic True Studyo...

58
Windows must die
673 / 855 / 103
Регистрация: 23.11.2021
Сообщений: 5,067
Записей в блоге: 18
08.01.2022, 15:36
Это - не реальная память, а виртуальная, так что не нужно беспокоиться.
0
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,927
08.01.2022, 17:40
Память для периферии это не нормальная память. Это отображение кучи отдельных регистров периферии на адресное пространство памяти. Она запросто может быть "дырявой", то есть каждый четный адрес содержать данные, а нечетный - нет. Это будет значить лишь что для четных адресов электроника есть, а для нечетных - нет.
Цитата Сообщение от Roman2947 Посмотреть сообщение
Разбираюсь STM32F411 ... это 1Кб
Что-то мало. Даже в F1 доступно 20 кБ оперативки

Добавлено через 4 минуты
UPD: А, понял о чем вы. Под GPIOA выделено 1 кБ адресного пространства, но только 40 байт реальных регистров. Это та самая "дырявая" память. Большая часть этого килобайта никаким реальным транзисторам не соответствует, просто для удобства программирования вот так решили распределить адреса.

Добавлено через 2 минуты
UPD2. В некоторых контроллерах с памятью извращаются еще сильнее: запись в некоторые ячейки приводит к модификации других ячеек. Но это не значит, что куча памяти расходуется впустую - просто обращение к некоторым адресам включает соответствующую логику и отображается на хитрую работу с реальной памятью. Я про bitband если что.
1
2 / 2 / 1
Регистрация: 11.07.2016
Сообщений: 152
08.01.2022, 17:46  [ТС]
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Память для периферии это не нормальная память. Это отображение кучи отдельных регистров периферии на адресное пространство памяти. Она запросто может быть "дырявой", то есть каждый четный адрес содержать данные, а нечетный - нет. Это будет значить лишь что для четных адресов электроника есть, а для нечетных - нет.
подозревал подобное, странно что адресное пространство в 25 раз больше необходимого...
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Что-то мало. Даже в F1 доступно 20 кБ оперативки
я 1Кб это только для GPIOA
0
Почетный модератор
 Аватар для Humanoid
11559 / 4353 / 453
Регистрация: 12.06.2008
Сообщений: 12,455
08.01.2022, 17:46
Цитата Сообщение от Roman2947 Посмотреть сообщение
Вопрос: Зачем для GPIO столько памяти выделено?
Памяти (и регистров) там нет. Выделены только адреса. Так проще разработчикам блока и чипа в целом. Просто для блока выделяют адресное пространство с запасом (обычно кратно 1 или 4 КиБ). Но лишь маленькая часть адресов имеют какой-то смысл, а остальные адреса идут в никуда. Т.е. все данные на шине с адресами в диапазоне 0х40020000-0х400203FF приходят в блок GPIOA, но сам блок обрабатывает только те адреса, которые он знает (для которых есть регистры), а всё остальное либо игнорирует, либо выставляет ошибку на шину.
1
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
08.01.2022, 18:35
Цитата Сообщение от Roman2947 Посмотреть сообщение
Разбираюсь STM32F411 в мануал пишут под GPIOA выделено памяти с адресным пространством с 0х4002 0000-0х4002 03FF если правильно считаю это 1Кб.
главное не учел, что в STM используется гарвардская архитектора, для каждой сущности своя память.
А потом сведена все в одно адресное пространство, для разработчика она выглядит как архитектура фон Немана.
1
2 / 2 / 1
Регистрация: 11.07.2016
Сообщений: 152
08.01.2022, 18:46  [ТС]
Цитата Сообщение от ValeryS Посмотреть сообщение
главное не учел, что в STM используется гарвардская архитектора, для каждой сущности своя память
это знать обязательно разработчику? да и где эти тонкости пишут?
0
Windows must die
673 / 855 / 103
Регистрация: 23.11.2021
Сообщений: 5,067
Записей в блоге: 18
08.01.2022, 18:55
Цитата Сообщение от Roman2947 Посмотреть сообщение
где эти тонкости пишут?
В даташитах и мануалах. Достаточно просто научиться читать.
1
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
08.01.2022, 18:56
Цитата Сообщение от Roman2947 Посмотреть сообщение
это знать обязательно разработчику?
разумеется
Цитата Сообщение от Roman2947 Посмотреть сообщение
да и где эти тонкости пишут?
так в любом даташите
1
75 / 66 / 12
Регистрация: 09.02.2016
Сообщений: 907
Записей в блоге: 16
08.01.2022, 19:18
Лучший ответ Сообщение было отмечено Roman2947 как решение

Решение

Цитата Сообщение от Roman2947 Посмотреть сообщение
это знать обязательно разработчику? да и где эти тонкости пишут?
посмотрите в даташите такой механизм как bitbanding
там есть формула
и по ней поймете почему именно такие "потери" адресного пространства получились
1
2 / 2 / 1
Регистрация: 11.07.2016
Сообщений: 152
08.01.2022, 20:19  [ТС]
Цитата Сообщение от ВитГо Посмотреть сообщение
механизм как bitbanding
полезная тема, спасибо!
0
Windows must die
673 / 855 / 103
Регистрация: 23.11.2021
Сообщений: 5,067
Записей в блоге: 18
08.01.2022, 22:47
Цитата Сообщение от Roman2947 Посмотреть сообщение
полезная тема
Для начинающих — крайне вредная тема, если что! Битбандинг — такая штука, которая может пригодиться разве что в 0.00000000001% случаев. Грубо говоря — никогда!!!
0
75 / 66 / 12
Регистрация: 09.02.2016
Сообщений: 907
Записей в блоге: 16
08.01.2022, 22:49
Цитата Сообщение от Roman2947 Посмотреть сообщение
полезная тема, спасибо!
угу, только не забывайте посматривать области применимости !
грубо говоря не ко всем устройствам на чипе оно применяется


соответственно смотреть адреса можно в табличке распределения периферии
и все что выше через битбандинг не доступно



ну и для RAM, которая с 0х20000000 соответственно не забываем свой регион указывать
0
75 / 66 / 12
Регистрация: 09.02.2016
Сообщений: 907
Записей в блоге: 16
08.01.2022, 22:52
Цитата Сообщение от Eddy_Em Посмотреть сообщение
Для начинающих — крайне вредная тема, если что!
какие громкие заявления :-)

хотя да, вам на сях вредная тема :-)

Не по теме:

вы же ограничены конструкциями СИ,
но на ассемблере афигенно удобная штука я вам скажу...




да и согласитесь, зная этот механизм уже не удивляешься "диким потерям" адресного пространства
0
Windows must die
673 / 855 / 103
Регистрация: 23.11.2021
Сообщений: 5,067
Записей в блоге: 18
08.01.2022, 23:39
Цитата Сообщение от ВитГо Посмотреть сообщение
вам на сях вредная тема
Вам на крестах - тоже. Битбандинг - довольно-таки специфическая штука. Я не могу ни одного примера придумать, когда бы эта фигня была нужна! Значительно более полезными являются операции через DMA над BSRR/BSR.
0
75 / 66 / 12
Регистрация: 09.02.2016
Сообщений: 907
Записей в блоге: 16
08.01.2022, 23:42
Цитата Сообщение от Eddy_Em Посмотреть сообщение
Вам на крестах - тоже. Битбандинг - довольно-таки специфическая штука. Я не могу ни одного примера придумать, когда бы эта фигня была нужна!
плюсы тоже не мое :-(

кстати пример
Миниатюры
Устройство памяти в STM32  
0
75 / 66 / 12
Регистрация: 09.02.2016
Сообщений: 907
Записей в блоге: 16
08.01.2022, 23:44
или вот, в общем думаю понятен смысл...
Миниатюры
Устройство памяти в STM32  
0
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,927
08.01.2022, 23:53
Цитата Сообщение от Roman2947 Посмотреть сообщение
подозревал подобное, странно что адресное пространство в 25 раз больше необходимого...
Видимо, так кристалл разводить удобнее было. Дорожек меньше тянуть или транзисторов ставить. Программисту-то без разницы.
Цитата Сообщение от Roman2947 Посмотреть сообщение
механизм как bitbanding
полезная тема, спасибо!
Да нет, бесполезная. Просто забавная фича некоторых ядер. Задач, где нужно в оперативке изменить всего 1 бит крайне мало. Менять 1 бит в периферии нужно чаще, но все равно редко.
Единственное, что приходит в голову - что-то вроде семафоров организовывать, но это и без извращений сделать можно.
Цитата Сообщение от ВитГо Посмотреть сообщение
да и согласитесь, зная этот механизм уже не удивляешься "диким потерям" адресного пространства
Вот тут к ТСу может прийти понимание, что адресное пространство != физическая память. Адресное пространство в stm32 аж 232 = 4 ГБ. Можно было скомпоновать реальные регистры одной кучкой килобайтов в сто, а остальные 4 ГБ объявили запретными. Но предпочли заложить конские запасы. А почему бы и нет, если это ничего не стоит.
К слову, в AVR поступили иначе, а потом на этом обожглись: на адрес команд прямого доступа к периферии in/out выделили всего 6 бит. А когда стали пилить более навороченные контроллеры, адресов стало не хватать и работу с периферией пришлось делать через отображение на память. Но там длина команды всего 16 бит, развернуться особо негде было.
1
75 / 66 / 12
Регистрация: 09.02.2016
Сообщений: 907
Записей в блоге: 16
08.01.2022, 23:57
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Вот тут к ТСу может прийти понимание, что адресное пространство != физическая память.
ну по хорошему он должен об этом задуматься когда ему справедливо указали
Цитата Сообщение от ValeryS Посмотреть сообщение
главное не учел, что в STM используется гарвардская архитектора
просто зачастую когда преподают различие гарварда от неймана не приводят нормальных примеров, а виртуальные примеры плохо понимаются и не всплывают в памяти когда сталкиваешься с этим в реальной жизни :-)
0
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,927
09.01.2022, 00:00
Цитата Сообщение от ВитГо Посмотреть сообщение
кстати пример (SPI2EN)
Ну, включение-выключение периферии это разовая операция. Не то место, где надо экономить.
Цитата Сообщение от ВитГо Посмотреть сообщение
или вот, в общем думаю понятен смысл... (ODR)
Через BSRR ненамного дольше.
Только зачем вы работу с этой линией сделали через подпрограммы?

Добавлено через 1 минуту
Цитата Сообщение от ВитГо Посмотреть сообщение
когда ему справедливо указали
главное не учел, что в STM используется гарвардская архитектора
А при чем здесь гарвардская архитектура? Это ведь не про адресные пространства, а про различные инструкции доступа к разным памятям.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.01.2022, 00:00
Помогаю со студенческими работами здесь

stm32 защита контролера от чтения и копирования флеш памяти
Кто подскажет как защитить контролер от копировки хэкс файла?

Сортировать массив во внешней памяти данных, передать его во внешнее устройство
Всем доброго дня! Прошу помочь с данным заданием в Ассемблере. Массив двоичных целых однобайтовых чисел без знака (N<256) размещен...

Оконечное устройство LoRa на базе STM32
Здравствуйте уважаемые форумчане. Не получается подключить модуль на основе stm32f103c8t6(SX1276-Lora модем) к базовой станции Вега...

Устройство памяти
пишут так: пусть у нас четыре ячейки памяти идущие подряд , содержимое которых соотетсвтуют шестнадцатеричным цифрам 41 ,4E, 4E и 41,...

Устройство оперативной памяти
Здравствуйте! Оперативная память состоит из чипов, каждый чип из банков, каждый банк из строк и столбцов. Подскажите, пожалуйста,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru