В прошлой своей теме я жаловался на то, что в SDRAM не шьется программа. Шьется, но похоже при выполнении каких то быстрых операций при работе с памятью отладчик вылетает с ошибкой. Если при присвоении в цикле заполнения какого либо массива ставить NOP, то все работет. Без NOP не пашет. Похоже запись должна выполняться медленнее. Память Samsung K4S561632J. Чип LPC3250. Есть у кого нормальный код инициализации данной памяти? Частота 208МГц, HCLK 104МГц.
Вот именно с этого следовало начинать. И самый быстрый путь попробовать - уменьшить тактовую частоту. Это быстро можно сделать. И при положительном эффекте - продолжать.
Что то не получается понизить тактовую частоту. При включении контроллера включается S1l бутлоадер. В нем инитится PLL. А потом как не меняй значения в регистрах, ничего не меняется. как есть 208МГц, так и остается. В LPC2478 был описан порядок, как менять частоту процессора "на ходу". Запись Пары патернов в последовательность регистров, а потом только запись нужных значений делителя. А здесь такого описания я не вижу. Пока делаю вывод, что "на ходу" частоту процессора не поменять.
В mac файле к проекту тоже есть инициализация PLL после __hwReset(0); но похоже ресет не случается.
В прошлой своей теме я жаловался на то, что в SDRAM не шьется программа. Шьется, но похоже при выполнении каких то быстрых операций при работе с памятью отладчик вылетает с ошибкой.
Опубликовал тут набор тестов для платы ARMGeoSpyder2, там есть тест DDR RAM и процедура прецизионной калибровки таймингов контроллера DDR в LPC3250. Тестирование платы на LPC3250