Цитата(Dron_Gus @ Apr 27 2007, 13:32)
Да. После того, как он запустился, его надо послать еще раз. Уже для прошивки во флешь. На heavy-online есть хорошая инструкция. Там все это описано.
я эту инструкцию уже чуть ли не наизусть выучил
я пробовал второй раз посылать и romboot.bin еще раз, и u-boot.bin - передача по x-modem не проходит, из-за ошибок при передаче x-modem отваливается. такое впечатление что или
порт неправильно сконфигурен или память или что еще
т.е. когда сам проц работает от slowclock после резета то x-modem еще как-то пашет, а вот после запуска romboot и егойных переинициализий железа x-modem самого romboot'а не пашет - не принимает ничего.
да, кварц я сейчас перепаял с 16000 kHz на 18432 kHz.
я еще попробовал добавить простейший тест памяти в сам romboot - записав числа начиная с адреса 0x20000000 объёмом около 16 метров (хотя памяти запаяно 64 метра суммарно) и сравнив потом то что я записал с тем что там на самом деле лежит после записи - там какая-то лажа
когда я пробую проверить тож самое начиная с адреса 0xC0000000 то получаю практически сразу после запуска этого теста:
-F- Data Abort detected
вот что у меня за тест:
Код
case '5': {
#define MEMTEST_ADDR_START 0x20000000
#define MEMTEST_SIZE 16777210
int *ptr, i;
printf("Starting memory test.\n\r");
printf("Writting.\n\r");
ptr = (int *)MEMTEST_ADDR_START;
for (i = 0; i < MEMTEST_SIZE; i++) {
*ptr = i;
ptr++;
}
printf("Reading.\n\r");
ptr = (int *)MEMTEST_ADDR_START;
for (i = 0; i < MEMTEST_SIZE; i++) {
int x;
x = *ptr;
if (x == i) {
} else {
printf("Error @ 0x%x: expected 0x%x found 0x%x.\n\r",
ptr, i, x);
}
ptr++;
}
}
command = 0;
break;
а при тесте с 0x20000000 я получаю такой результат:
Код
AT91F_LowLevelInit(): Debug channel initialized
press any key to enter bootloader
ATMEL LOADER VER 1.01 Apr 27 2007 23:48:13
*----------------------------------------*
DataFlash[0x0]:AT45DB642
Nb pages: 008192
Page Size: 001056
Size=08650752 bytes
Logical address: 0xC0000000
Main = 18432000 Hz
CPU = 48054841 Hz
*----------------------------------------*
1: Download Dataflash [addr]
2: Read Dataflash [addr]
3: Start U-BOOT
4: Clear bootloader section in Dataflash
5: Simple SDRAM test
*----------------------------------------*
Enter: 5
Starting memory test.
Writting.
Reading.
Error @ 0x20000000: expected 0x0 found 0x820000.
Error @ 0x20000004: expected 0x1 found 0x820001.
Error @ 0x20000008: expected 0x2 found 0x820002.
Error @ 0x2000000c: expected 0x3 found 0x820003.
Error @ 0x20000010: expected 0x4 found 0x820004.
Error @ 0x20000014: expected 0x5 found 0x820005.
Error @ 0x20000018: expected 0x6 found 0x820006.
Error @ 0x2000001c: expected 0x7 found 0x820007.
Error @ 0x20000020: expected 0x8 found 0x820008.
Error @ 0x20000024: expected 0x9 found 0x820009.
Error @ 0x20000028: expected 0xa found 0x82000a.
...
я не пойму - то-ли память не так инициализирована, то-ли память битая, так как чипы выпаяны из диммов (но вроде выпаивал аккуратно, не перегревал особо).
сейчас сижу изучаю даташиты на микросхемы памяти
я-то взял не 8-ми или 16-ти метровые чипы, как это сделано в оригинале rainbow, а поставил два 32-х метровых HY57V56160FTP-H.