V_M_Luck 0 4 февраля, 2010 Опубликовано 4 февраля, 2010 · Жалоба Начинаю работать с SAM9XE, IAR 5.2. Во всех примерах в board_lowlevel.c в конце инициализации выполняется RamRemap. Покапавшись, я обнаружил, что ремап используется для обслуживания векторов прерываний с адреса 0. Я решил разместить вектора во флеш. У брал ремап, подправил icf, чтобы .vectors линковались во флеш, на старте проверяю GPNVMBit[3] - он в "1". Все вроде ок, но не работает. Какие здесь могут быть еще грабли? Сорри. Все заработало. Был мой глюк. Единственный вопрос к гуру. Нет ли в таком расположении векторов каких-нибудь принципиальных проблем? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vmp 0 4 февраля, 2010 Опубликовано 4 февраля, 2010 · Жалоба Никаких глюков не наблюдаю, ремап отключил раз и навсегда. При инициализации MMU надо будет 0 страницу памяти отобразить на ПЗУ (адрес 0x00200000). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 56 4 февраля, 2010 Опубликовано 4 февраля, 2010 · Жалоба Нет ли в таком расположении векторов каких-нибудь принципиальных проблем? Нет. По большому счету, Remap у Atmel'а - это просто дань традиции. При инициализации MMU надо будет 0 страницу памяти отобразить на ПЗУ (адрес 0x00200000). Зачем, если флеш и так отмаплена в 0? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vmp 0 4 февраля, 2010 Опубликовано 4 февраля, 2010 · Жалоба Зачем, если флеш и так отмаплена в 0? Без этого не работают прерывания. Детально не разбирался, нащупал решение опытным путем и успокоился. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V_M_Luck 0 4 февраля, 2010 Опубликовано 4 февраля, 2010 · Жалоба Зачем, если флеш и так отмаплена в 0? Без мму могут быть проблемы с кэшем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 56 4 февраля, 2010 Опубликовано 4 февраля, 2010 · Жалоба Без мму могут быть проблемы с кэшем. Про MMU и кэш я вообще-то в курсе. Будут не проблемы, а просто невозможность задействовать DCache без MMU. Но вопрос был в том, зачем мапить флеш при помощи MMU, когда это и так уже сделано в железе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V_M_Luck 0 4 февраля, 2010 Опубликовано 4 февраля, 2010 · Жалоба Практика лучше теории. Я у себя отключил мму - работает. Отключил мму и кэши - работает. То есть и прерывания то-же. Без этого не работают прерывания. Детально не разбирался, нащупал решение опытным путем и успокоился. Проблема где-то еще. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться