Цитата(skripach @ Oct 20 2016, 19:28)

Схему подключения памяти покажите.
На скорую руку выкинул из схемы все, что не касается SDRAM. Так много чего лишнего было, так что там нагромождено...
Цитата(x893 @ Oct 20 2016, 21:27)

Изменить код - так что бы понятно с первого взгляда.
эээ...
Ну может так понятнее:
CODE
#define SDRAM_ADR 0xD0000000
#define TEST_LEN 0x800000
void writeToSdram (void)
{
u32 * p;
p = SDRAM_ADR; /**< Присваиваю указателю адрес начала SDRAM */
printf("\tWriting to sdram\r\n", exampleStr);
/** Пишу по этому указателю пишу четырехбайтными словами 0x800000 раз (то есть забиваю все 32 мегабайта) */
for (u32 i = 0; i < TEST_LEN; i++)
p[i] = i; /**< Пишу значение счетчика итераций */
}
void readFromSdram (void)
{
u32 * y;
y = SDRAM_ADR; /**< Присваиваю указателю адрес начала SDRAM */
for (u32 i = 0; i < TEST_LEN; i++)
{
/** Сравниваю значение в SDRAM со счетчиком итераций, так как при записи я записывал это самый счетчик.
* Если значение не совпадает, значит по этому адресу не то значение, которое я записываю.
* Данные об этих несовпадениях я вывожу в консоль */
if ( y[i] != i )
printf("\t\twrong value on adr %d - %x \r\n", i, y[i]);
}
printf("\tSdram test end\r\n");
}
int main (void)
{
initSdram(); /**< эта моя инииализация SDRAM, которую я показал в первом посте */
writeToSdram(); /**< Записываю в SDRAM */
readFromSdram(); /**< Читаю из SDRAM и сравниваю */
while (1)
{};
}
Цитата(AVI-crak @ Oct 20 2016, 22:54)

Время рефлеша "1385" - ? это для какой тактовой?
Здесь таковая не есть частота ядра, а лишь то что прилетает на сам чип памяти.
Тактовая частота ядра 180MHz на SDRAM приходит 90 MHz. Я что-то не совсем понял, а как тогда рассчитать это значение?