Arlleex 183 18 апреля, 2020 Опубликовано 18 апреля, 2020 · Жалоба 18 минут назад, misyachniy сказал: https://developer.arm.com/docs/dui0553/a/cortex-m4-peripherals/system-control-block/vector-table-offset-register Ага, а теперь поставьте 1 в 29 бит и посмотрите результирущий адрес. Ничего не напоминает? P.S. Ваша цитата есть лишь пережеванное и упрощенное описание битовых полей VTOR. Абсолютно закономерно, что адреса Flash 0x00000000-0x1FFFFFFF будут иметь 0 в 29 бите. Абсолютно закономерно, что адреса RAM 0x20000000-0x3FFFFFFFF будут иметь 1 в 29 бите. 6 минут назад, misyachniy сказал: https://community.arm.com/developer/ip-products/processors/f/cortex-m-forum/6182/cortex-m3-what-happen-to-the-stack-pointer-sp-when-setting-vtor/20270#20270 https://www.sciencedirect.com/topics/engineering/reset-handler http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka16214.html Ну так где хоть слово о том, что начальное значение SP это начало Flash? То, что начальное значение SP лежит по нулевому слову таблицы векторов я прекрасно знаю. Вы же утверждали, что именно Flash Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 18 апреля, 2020 Опубликовано 18 апреля, 2020 · Жалоба 6 hours ago, AHTOXA said: (Architecture Reference Manual в данном случае). Получается, что документация на микроконтроллер включает в себя (по порядку): 1. Architecture Reference Manual на архитектуру, например ARMv6-M. 2. Technical Reference Manual на процессор, например Cortex-M0. 3. Cortex-Mx Devices. Generic User Guide. 4. Reference Manual, Datasheet, Programming manual и проч. на сам микроконтроллер. 5. Плюсом различные Application Notes на данный микроконтроллер. п.п. 1 - 3 от разработчиков архитектуры и ядра, остальные - от разработчика микроконтроллера. Ничего не пропустил?) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 18 18 апреля, 2020 Опубликовано 18 апреля, 2020 · Жалоба Есть ещё научпоп, типа вышеупомянутой книги Дж. Ю. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 183 18 апреля, 2020 Опубликовано 18 апреля, 2020 · Жалоба 15 минут назад, haker_fox сказал: Получается, что документация на микроконтроллер включает в себя (по порядку): ... Ничего не пропустил?) Обычно внутри каждого документа есть глава с документами, имеющими влияние на понимание вещей в текущем. Но в целом, да, в 99,9% случаев это набор на все случае жизни. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 183 18 апреля, 2020 Опубликовано 18 апреля, 2020 · Жалоба Кстати. Посмотрел в RM на первый попавшийся STM32 (STM32F205), там в разделе про режимы загрузки написано Цитата 2.4 Boot configuration Due to its fixed memory map, the code area starts from address 0x0000 0000 (accessed through the ICode/DCode buses) while the data area (SRAM) starts from address 0x2000 0000 (accessed through the system bus). The Cortex®-M3 CPU always fetches the reset vector on the ICode bus, which implies to have the boot space available only in the code area (typically, Flash memory). STM32F20x and STM32F21x microcontrollers implement a special mechanism to be able to boot from other memories (like the internal SRAM). ... Note: When the device boots from SRAM, in the application initialization code, you have to relocate the vector table in SRAM using the NVIC exception table and the offset register. А с фига ли? Знает кто-нибудь? Зачем при загрузке из SRAM мне указывать в VTOR положение векторов? При выборе режима загрузки из SRAM на нулевые адреса итак ляжет начало SRAM. Соответственно, таблица векторов будет рассматриваться, как находящаяся по 0x20000000. Как туда поместить реальные адреса обработчиков - вопрос другой. Почему ST пишут, что нужно явно переназначить VTOR (полагаю, адресом 0x20000000)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Darth Vader 0 18 апреля, 2020 Опубликовано 18 апреля, 2020 · Жалоба 6 hours ago, haker_fox said: Получается, что документация на микроконтроллер включает в себя... Конкретно на Cortex-M3 надо ввести ещё Cortex-M3 Devices Generic User Guide . Это будет где-то между п. 2 и 3. П. 1-3 - от разработчика архитектуры и ядра - ARM. П. 3-4 от разработчика микроконтроллера - STM, NXP, Renesas и т.д. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 61 18 апреля, 2020 Опубликовано 18 апреля, 2020 · Жалоба 7 minutes ago, Darth Vader said: п. 2 и 3. П. 1-3 - от разработчика архитектуры и ядра - Исправил список. Оказывается на M0 он тоже есть. Всегда мечтал подготовить такой список. Помню, как было на первых порах самому разольраться в этом ворохе документов. После AVR и PIC)))) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 241 18 апреля, 2020 Опубликовано 18 апреля, 2020 · Жалоба 10 часов назад, Arlleex сказал: P.S. Ваша цитата есть лишь пережеванное и упрощенное описание битовых полей VTOR. Абсолютно закономерно, что адреса Flash 0x00000000-0x1FFFFFFF будут иметь 0 в 29 бите. Абсолютно закономерно, что адреса RAM 0x20000000-0x3FFFFFFFF будут иметь 1 в 29 бите. Интересно, а адрес 0x1FFE8000 в Cortex-M4F - это что по Вашему получается там находится? Флешь или ОЗУ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 183 18 апреля, 2020 Опубликовано 18 апреля, 2020 · Жалоба 1 час назад, jcxz сказал: Интересно, а адрес 0x1FFE8000 в Cortex-M4F - это что по Вашему получается там находится? Флешь или ОЗУ? Ну, вообще говоря, хз. Это область кода, судя по первоисточникам. А че там физически, зависит уже от производителя МК. Если Вы про XMC4, то там да, будет лежать PSRAM. Я сначала думал, что будет проще для понимания, если я Code обзову как область хранения кода (в большинстве случаев это все-таки Flash). Но опрометчиво Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться