Как правильно обновить таблицу перевода MMU?
Я включил MMU на моей плате s3c2440 (память 3G - 4G :: атрибут сбоя), когда все не было, все было нормальноt чтение / запись памяти 3G - 4G. Чтобы проверить вектор ошибки страницы, я записал 0xFF на адрес 3G, как я и ожидал, я получил правильное значение от FSR, поэтому я сделал это в _do_page_fault (), шаг было так:
..... // set new page to translation table
.....
invlidate_icache (); // clear icache
clr_dcache (); // wb is used ,clear dcache
invalidate_ttb (); // invalidate translation table
и затем ISR_dataabort вернулся, я прочитал адрес 3G, чтобы получить 0xFF, который я носил раньше. К сожалению, я снова прервал данные (я уверен, что значение таблицы перевода, которое я установил, в порядке)
Так что это правильный способ обновить таблицу перевода MMU. Любая помощь ценится! Спасибо
вот основной код, который я использовал (только для некоторого теста),(Я немного странный для ARM ARCH, поэтому этот код может быть срочным)
/* MMU TTB 0 BASE ATTR */
#define TTB0_FAULT (0|(1