Неожиданное поведение DRAM, когда MCU остановился на точке останова
В настоящее время я работаю над микроконтроллером Freescale Vybrid (VF6xx), пытаясь настроить внешний чип LPDDR2 DRAM.
Я испытываю странное поведение с DRAM (память сопоставлена с 0x8000_0000): при остановке на точке останова DRAM, похоже, все равно меняется каждый раз, когда я читаю из него в отладчике.
Кто-нибудь знает, что может быть причиной этого?
Ура!
1 ответ
В конце концов я нашел ответ на вопрос.
Как оказалось, настройка DRAM определила неверный адресный контакт. Производитель предоставил рекомендованное значение для регистра, определяющего этот бит, но это оказалось неверным.
Для будущих гуглов: Справочное руководство Vybrid, редакции 7 и 8, рекомендует DDRMC_CR73[APREBIT]=0xA для DDR3 и LPDDR2. Это назначает DDR_A10/CA10 в качестве адреса адреса. Стандарт JEDEC определяет DDR_A0/CA0 в качестве адресного контакта, поэтому правильное значение должно быть: DDRMC_CR73 [APREBIT] = 0x0.