FLA SH банки и извлечение инструкций ядра процессора stm32f7 - PullRequest
0 голосов
/ 08 февраля 2020

Я изучаю свой путь через микроконтроллер smth32f746ng и столкнулся с несколькими вопросами, касающимися fla sh и записи в fla sh с помощью OpenOcd.

Таким образом, opoenOCD по умолчанию пишет в первый банк fla sh по адресу 0x0. Процессор может получить доступ к fla sh через шину ITCM или AXIM с адресами 0x08000000 (Itcm) или 0x00200000 (Axim). Как я полагаю, когда процесс читает инструкцию из, скажем, 0x08000000 через шину ITCM, он, таким образом, читает 0x0 fla sh address.

Вопрос: Когда процессор загружается, какой регистр управляет первичным способом извлечения первого инструкция. Будет ли он загружаться с использованием шины ITCM или AXIM?

Если бы кто-нибудь мог указать мне, что он в нужном месте в документах, было бы здорово.

1 Ответ

1 голос
/ 08 февраля 2020

Вы устанавливаете таблицу векторов, и адрес со смещением 0x004 в этой таблице является вектором сброса, который определяет, где он получает первую инструкцию. Так что вам решать, какой.

документы ARM расскажут вам, как работает таблица векторов. этот адрес 0x00000004 в адресном пространстве плеча является вектором сброса. ST-документы сообщают вам, что соответствует 0x00000004 в зависимости от контакта boot0 (и, возможно, boot1, если он присутствует). ST do c сообщает вам, что 0x00200000 и 0x08000000 указывают на пути ITCM и AXIM для пользователя / приложения fla sh.

Таким образом, чтение 0x00000004 для определения вектора сброса может go через один из шин все время, после этого именно то, что вы положили в смещение 0x004 таблицы векторов, определяет, по какой шине выбирается первая инструкция. А остальная часть вашего кода определяет, откуда остальные инструкции извлекаются.

...