благодарю за ответ aaarrr. Понимаю всё это с трудом, поэтому если можешь поправь следующие расcуждения:
Цитата
И не с адреса 0х1000 0000 (откуда вообще эта цифра?)
Как я понял (из основного распределения памяти даташита) SPI dataFlash находится по этому адресу. До тех пор пока не будет remp = 0 и BMS = 0. Или я чтото серьёзно путаю?Цитата
Bootloader делает remap, загружает кусок программы в SRAM (она расположена по адресу 0) и передает ей управление.
Те по сути загружает код из флешь в SRAM1 и remp = 1 . По адресу 0 стала ведь SRAM1. В ней до 4k программы.
сразу вопрос AT45DB161D имеет страницы по 528/512. Загрузится из 1ой первый 512 потом из второй первые 512 итд а оставшиеся 26 в каждой странице для нужд программиста. или будут грузится все 528 байт?В этом за груженом куске я настраиваю кешь, тактирование.
Цитата
Все остальное - инициализацию кэшей, SDRAM,
Те её нужно ещё настраивать? А
defunct советовал отлаживать программу в SDRAM? Поймите меня правильно на той плате что сейчас у меня SDRAM нет (конструктора так постарались), но на следующей версии будет.
По этому важно знать можно ли сразу с J-Link будет в неё грузить? Объём загруженного кода определяется значением что был по 0x14 (RESERVED) в SPI dataFlash
Далее загружаю из ФЛЕШЬ в SDRAM и перехожу на неё вызывая фиктивную функцию.
Цитата
Ничего не понял, если честно. Почему так именно Undefined_Handler покоя не дает?
Он для примера. Просто не хочется остовлять ситуации в которые может попасть процесор и обработчика там не будет. Результат кажется сложно предсказуемым, да и узнать что случилось "именно така" ситуация становится не возможным.
Цитата
После загрузки, основная программа может совершенно спокойно записать в область векторов что-то свое.
каким образом? там ведь выполняемый код? (хоть и перезаписываемый) можно пример?
Прошу извинение за докучливость, но очень нужно разобраться.