Перейти к содержанию
    

Гость do_not_know_Linux

привет форум...   не могу понять, вот на stm32H7, если не ошибаюсь, память разделена на две "банки".   если было бы два ядра у процессора, то можно было бы предположить, что в одну банку пишу код для одного ядра, а в другую -для другого. но зачем на одноядерном микроконтроллере две банки?  и не понятно stm32H750 использует эти две банки как одну?

simultaneous operations: two read/program/erase operations executed in parallel
on both banks (only available on STM32H742/743/753)

или как-то иначе? можете сказать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

20 минут назад, do_not_know_Linux сказал:

привет форум...   не могу понять, вот на stm32H7, если не ошибаюсь, память разделена на две "банки".   если было бы два ядра у процессора, то можно было бы предположить, что в одну банку пишу код для одного ядра, а в другую -для другого. но зачем на одноядерном микроконтроллере две банки?  и не понятно stm32H750 использует эти две банки как одну?

А RM почитать не пробовали?

Я RM на этот МК тоже не читал, но могу предположить 2 цели:

1) Возможность записи/стирания одного банка при выполнении кода из другого;

2) Возможность параллельного чтения кода из двух банков для ускорения выборки команд

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость do_not_know_Linux
18 minutes ago, jcxz said:

1) Возможность записи/стирания одного банка при выполнении кода из другого;

2) Возможность параллельного чтения кода из двух банков для ускорения выборки команд

скажите пожалуйста, тут код не загружается в sram?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 минуты назад, do_not_know_Linux сказал:

скажите пожалуйста, тут код не загружается в sram?

"Тут" - это где?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость do_not_know_Linux
1 minute ago, jcxz said:

"Тут" - это где?

ну на этой модели МК...    для меня еще пока вся эта документация как темный лес.  спасибо что помогаете ребята

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость do_not_know_Linux
2 minutes ago, jcxz said:

Код в ОЗУ думаю загрузить и выполнить можно на любом ARM-е.

вот по этому я и подумал, какой тогда смысл в двух банках.  наверное только для того чтоб код энергоэффективного ядра размещать отдельно от кода высокопроизводительного ядра.  потому что если код загружается в sram то ускорение выборки команд при помощи разделения flash на две банки отпадает.   это я щас только придумал благодаря вам. просто монял что нет смысла иного кроме как размещение кода для разных ядер в разные области sram. но это бред конечно, но подумалось так

и все может было бы норм, но на этом МК кажется только одно ядра. вот я и что-то подзапутался

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Память бывает разная. Где-то можно код выполнять, где-то нельзя. К одной есть доступ DMA, к другой нет. Одна кешируется, другая нет. Соответственно её и использовать можно по разному. В одной стек лучше разместить, в другой ethernet-пакеты гонять, в третьей прерывания выполнять. Это же Cortex-M7, он чутка посложнее AVR-ки по архитектуре. Курите RM и Cortex-M7 programming manual. Его с наскоку не возьмёшь.

 

PS: Как там переход на машкоды идёт? :)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, чуть не забыл, дело совсем не в многоядерности. Разные банки памяти даже на младших контроллерах бывают.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Инструкцию не читал, но вставить 5 копееек хочется.

Я экспериментировал на STM32F103 с цифровыми фильтрами, чтобы достигнуть максимум скорости обработки. По старой памяти работы с AT91SAM7, разместил в ОЗУ код и коэффициенты фильтра. Данные естественно в ОЗУ. Тестирование показало, что такой вариант не лучший. Лучше когда код во флеш. Думаю,  за того? что доступ к памяти у ядра не на на прямую а через шину AHB. Сейчас лень перепроверять самого себя, шины две: одна для ОЗУ, вторая для флеш. В случае размещения кода, коэффициентов и данных В ОЗУ "поднос снарядов" для процессора идет по одной шине. 

В данном случае наверное можно извратиться и разместить код в одном банке, коэффициенты в другом, а данные в ОЗУ.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, misyachniy сказал:

Данные естественно в ОЗУ. Тестирование показало, что такой вариант не лучший. Лучше когда код во флеш. Думаю,  за того? что доступ к памяти у ядра не на на прямую а через шину AHB.

Так и есть. И не только в STM32F103, но и в других МК. Часто к флешу идёт отдельная шина (может быть даже бОльшей разрядности), к тому же - проходящая через кеш. Так что неудивительно, что из флеша код выполняется быстрее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 hours ago, jcxz said:

Так и есть. И не только в STM32F103, но и в других МК. Часто к флешу идёт отдельная шина (может быть даже бОльшей разрядности), к тому же - проходящая через кеш. Так что неудивительно, что из флеша код выполняется быстрее.

Смешались в кучу кони люди... Я отвечал на вопрос "зачем два банка памяти с одновременным доступом"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 часов назад, misyachniy сказал:

Данные естественно в ОЗУ. Тестирование показало, что такой вариант не лучший...

Видимо, Вы забыли про remap memory на 0x0, чтобы CPU задействовал ICode/DCode/SystemBus для доступа к коду и данным при запуске из ОЗУ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

17 hours ago, Arlleex said:

Видимо, Вы забыли про remap memory на 0x0, чтобы CPU задействовал ICode/DCode/SystemBus для доступа к коду и данным при запуске из ОЗУ.

Первый раз слышу о таком в STM32F103.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...