Нажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файлаНажмите для просмотра прикрепленного файлаНа плате Rainbow у меня стоит микроновкая память MT48LC4M16A2TG-75 ( 1 Meg x 16 x 4 banks).
Xmodem при записи в SDRAM не работает - выдает ошибки. Поэтому приходится писать в плату при помощи своих самодельных протоколов. CRC - сервисы процессора правильно считают CRC16, CRC32, ... только когда подсчитываемый массив находится в во внутренней SRAM процессора.
Записал в DataFlash romboot.bin, модифицировав его таким образом, чтобы он копировал себя из internal SRAM в DataFlash.
Записал u-boot в DataFlash, побайтно возвращая из платы на PC hex-символы для контроля ошибок при коммуникации DBGU, затем сбрасывая копию массива из SDRAM через DBGU по 4 hex - символа в файл на РС, и побайтно сравнивая затем переданный и принятый файлы, и затем записывая массив из SDRAM в DataFlash.
При попытке запустить u-boot ничего не происходит. Сбросив копию области 0x20F00000 u-boot'a через DBGU на PC и побайтно сравнив файлы обнаружил массу ошибок по адресам, соответствующим младшему байту на шине данных процессора.
Визуальный осмотр под микроскопом монтажа на плате дефектов не выявил. Пропайка микросхемы памяти и резисторов на шине данных не помогла.
Что можно сделать еще, кроме замены микросхемы памяти, соотв. младшим разрядам шины данных процессора.
P.S. В аттаче MS VC6 проекты моих консольных приложений, которые я использую, и файл diff с данными побайтного сравнения переданного и считанного u-boot'a.