Перейти к содержанию
    

Процессор 1892ВМ3Т(мс-12). Зеленоград

SDRAM начинается с логического адреса 0ха0000000. Значение CSCON0 = 0x3000FC, SDRCON = 0x80072710. Больше ничего настраивать не надо. Считал так же, как написано в мануале в разделе, посвященном SDRCON. Частота у меня 80 МГц, работаю без PLL напрямую от внешнего генератора. Данные не пропадали. В чем дело при загрузке во внутреннюю память, я не знаю - не пробовал так делать, так что лучше обращайтесь в Элвис.

В приложенном файле исходники проекта для распаковки эльфа и его записи во флэш, и еще файл с настройками проекта. Поскольку МС24 при записи в 8-разрядную флэш не выставляет младшие биты адреса, ноги А0 и А1 шины адреса объединены у меня на плате с ногами LDAT0 и LDAT1 по ИЛИ, и при каждом выставлении нового адреса для записи во флэш приходится предварительно выполнять запись в регистр LDR0.

Elf_unpack.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема с программой прошивки, разрешилась следующим образом:

В нерабочем варианте, из главной процедуры main вызывалась функция разбора эльф-объекта, после выделения секции для прошивки, из функции разбора вызывалась функция прошивки этой части во флэшь. Функция разбора эльф-объекта, функция прошивки флэшь и процедура main описаны в соответствующих с-файлах.

 

В рабочем варианте,я просто скопировал текст разбора эльф-объекта в процедуру main, точно также из неё вызывал функцию прошивки. В архитектуре проекта ничего непоменял, ничего не удалял, все файлы собраны в техже адресах, загружаю файл в память по томуже адресу. Программа загрузчик и загружаемый файл друг на друга ненакладываются-проверял. Но почемуто всё заработало))

работаем дальше))

С ОЗУ вопрос пока нерешён. Я считал что подключеный к nCS0 ОЗУ,с описанными выше настройками (0x3000FC) CSCON0 должен начинаться с адреса 0х00000000, и обращался в этот адрес, и записывал в него и даже считывал-всё работает, когда писали в Элвис, там также всё подтвердиле, однако всё записанное в адрес 00000000, повторяется в адресе a0000000, и в 80000000 - это несовсем понятно.

ЗЫ:надеюсь всё понятно написал ))

Изменено пользователем Mandarin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С ОЗУ вопрос пока нерешён. Я считал что подключеный к nCS0 ОЗУ,с описанными выше настройками (0x3000FC) CSCON0 должен начинаться с адреса 0х00000000, и обращался в этот адрес, и записывал в него и даже считывал-всё работает, когда писали в Элвис, там также всё подтвердиле, однако всё записанное в адрес 00000000, повторяется в адресе a0000000, и в 80000000 - это несовсем понятно.

ЗЫ:надеюсь всё понятно написал ))

 

В CSCON указывается физический адрес (он действительно равен 00000000), а в программе я использовал виртуальный адрес A0000000, который в режиме Kernel как раз отображается в 00000000 (с виртуальным адресом 80000000 - та же история). Про это написано в разделе 2.5 мануала, который посвящен MMU.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...