Гость do_not_know_Linux 3 февраля, 2022 Опубликовано 3 февраля, 2022 · Жалоба привет форум... не могу понять, вот на stm32H7, если не ошибаюсь, память разделена на две "банки". если было бы два ядра у процессора, то можно было бы предположить, что в одну банку пишу код для одного ядра, а в другую -для другого. но зачем на одноядерном микроконтроллере две банки? и не понятно stm32H750 использует эти две банки как одну? simultaneous operations: two read/program/erase operations executed in parallel on both banks (only available on STM32H742/743/753) или как-то иначе? можете сказать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 3 февраля, 2022 Опубликовано 3 февраля, 2022 · Жалоба 20 минут назад, do_not_know_Linux сказал: привет форум... не могу понять, вот на stm32H7, если не ошибаюсь, память разделена на две "банки". если было бы два ядра у процессора, то можно было бы предположить, что в одну банку пишу код для одного ядра, а в другую -для другого. но зачем на одноядерном микроконтроллере две банки? и не понятно stm32H750 использует эти две банки как одну? А RM почитать не пробовали? Я RM на этот МК тоже не читал, но могу предположить 2 цели: 1) Возможность записи/стирания одного банка при выполнении кода из другого; 2) Возможность параллельного чтения кода из двух банков для ускорения выборки команд Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость do_not_know_Linux 3 февраля, 2022 Опубликовано 3 февраля, 2022 · Жалоба 18 minutes ago, jcxz said: 1) Возможность записи/стирания одного банка при выполнении кода из другого; 2) Возможность параллельного чтения кода из двух банков для ускорения выборки команд скажите пожалуйста, тут код не загружается в sram? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 3 февраля, 2022 Опубликовано 3 февраля, 2022 · Жалоба 2 минуты назад, do_not_know_Linux сказал: скажите пожалуйста, тут код не загружается в sram? "Тут" - это где? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость do_not_know_Linux 3 февраля, 2022 Опубликовано 3 февраля, 2022 · Жалоба 1 minute ago, jcxz said: "Тут" - это где? ну на этой модели МК... для меня еще пока вся эта документация как темный лес. спасибо что помогаете ребята Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 3 февраля, 2022 Опубликовано 3 февраля, 2022 · Жалоба Код в ОЗУ думаю загрузить и выполнить можно на любом ARM-е. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость do_not_know_Linux 3 февраля, 2022 Опубликовано 3 февраля, 2022 · Жалоба 2 minutes ago, jcxz said: Код в ОЗУ думаю загрузить и выполнить можно на любом ARM-е. вот по этому я и подумал, какой тогда смысл в двух банках. наверное только для того чтоб код энергоэффективного ядра размещать отдельно от кода высокопроизводительного ядра. потому что если код загружается в sram то ускорение выборки команд при помощи разделения flash на две банки отпадает. это я щас только придумал благодаря вам. просто монял что нет смысла иного кроме как размещение кода для разных ядер в разные области sram. но это бред конечно, но подумалось так и все может было бы норм, но на этом МК кажется только одно ядра. вот я и что-то подзапутался Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 3 февраля, 2022 Опубликовано 3 февраля, 2022 · Жалоба Память бывает разная. Где-то можно код выполнять, где-то нельзя. К одной есть доступ DMA, к другой нет. Одна кешируется, другая нет. Соответственно её и использовать можно по разному. В одной стек лучше разместить, в другой ethernet-пакеты гонять, в третьей прерывания выполнять. Это же Cortex-M7, он чутка посложнее AVR-ки по архитектуре. Курите RM и Cortex-M7 programming manual. Его с наскоку не возьмёшь. PS: Как там переход на машкоды идёт? :))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Гость do_not_know_Linux 3 февраля, 2022 Опубликовано 3 февраля, 2022 · Жалоба спасибо ребята Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 3 февраля, 2022 Опубликовано 3 февраля, 2022 · Жалоба Да, чуть не забыл, дело совсем не в многоядерности. Разные банки памяти даже на младших контроллерах бывают. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
misyachniy 0 8 февраля, 2022 Опубликовано 8 февраля, 2022 · Жалоба Инструкцию не читал, но вставить 5 копееек хочется. Я экспериментировал на STM32F103 с цифровыми фильтрами, чтобы достигнуть максимум скорости обработки. По старой памяти работы с AT91SAM7, разместил в ОЗУ код и коэффициенты фильтра. Данные естественно в ОЗУ. Тестирование показало, что такой вариант не лучший. Лучше когда код во флеш. Думаю, за того? что доступ к памяти у ядра не на на прямую а через шину AHB. Сейчас лень перепроверять самого себя, шины две: одна для ОЗУ, вторая для флеш. В случае размещения кода, коэффициентов и данных В ОЗУ "поднос снарядов" для процессора идет по одной шине. В данном случае наверное можно извратиться и разместить код в одном банке, коэффициенты в другом, а данные в ОЗУ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 8 февраля, 2022 Опубликовано 8 февраля, 2022 · Жалоба 1 час назад, misyachniy сказал: Данные естественно в ОЗУ. Тестирование показало, что такой вариант не лучший. Лучше когда код во флеш. Думаю, за того? что доступ к памяти у ядра не на на прямую а через шину AHB. Так и есть. И не только в STM32F103, но и в других МК. Часто к флешу идёт отдельная шина (может быть даже бОльшей разрядности), к тому же - проходящая через кеш. Так что неудивительно, что из флеша код выполняется быстрее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
misyachniy 0 8 февраля, 2022 Опубликовано 8 февраля, 2022 · Жалоба 4 hours ago, jcxz said: Так и есть. И не только в STM32F103, но и в других МК. Часто к флешу идёт отдельная шина (может быть даже бОльшей разрядности), к тому же - проходящая через кеш. Так что неудивительно, что из флеша код выполняется быстрее. Смешались в кучу кони люди... Я отвечал на вопрос "зачем два банка памяти с одновременным доступом" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 183 8 февраля, 2022 Опубликовано 8 февраля, 2022 · Жалоба 7 часов назад, misyachniy сказал: Данные естественно в ОЗУ. Тестирование показало, что такой вариант не лучший... Видимо, Вы забыли про remap memory на 0x0, чтобы CPU задействовал ICode/DCode/SystemBus для доступа к коду и данным при запуске из ОЗУ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
misyachniy 0 9 февраля, 2022 Опубликовано 9 февраля, 2022 · Жалоба 17 hours ago, Arlleex said: Видимо, Вы забыли про remap memory на 0x0, чтобы CPU задействовал ICode/DCode/SystemBus для доступа к коду и данным при запуске из ОЗУ. Первый раз слышу о таком в STM32F103. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться