В чем разница между данными, инструкциями и флэш-памятью CCM на STM32?
Страница 14 этого обзора архитектуры STM32F7 показывает адреса памяти для:
- FLASH-ITCM (неизвестный размер на F730, который я использую)
- DTCM-RAM (64 КБ)
- ITCM-RAM (16 КБ)
В чем разница между ними? Многие примеры показывают данные, поступающие в DTCM. Где лучше всего подходят такие вещи, как стек или критическая функция?
Есть ли какая-то польза от использования флэш-интерфейса ITCM по сравнению с ускорителем ART?
1 ответ
Разница между DTCM и ITCM заключается в том, к какой шине они подключены, DTCM находится на шине D, поэтому используется для хранения данных, это идеальное место для хранения стека, ITCM на шине I, поэтому используется для извлечения инструкций (код), это хорошее место для хранения ваших критических процедур.
Ускоритель ART находится между Flash и ITCM, поэтому он не является ни тем, ни другим. Выгодно использовать флэш-память через ITCM для кода, так как вы получаете ускорение, а через шину AHB - нет. Вся флэш-память доступна через интерфейс ITCM или шину AHB, в зависимости от того, какой адрес вы используете; 0x0020 0000
в 0x0027 FFFF
через ITCM, 0x0800 0000
в 0x0807 FFFF
через AHB оба набора адресов указывают на одну и ту же область вспышки.