Здравствуйте, уважаемые господа ! Есть одна серьезная проблема, без устранения которой не можем продолжать дальнейшее выполнение своего проекта. Наш проект представляет собой некий WEB контроллер на AT91SAM9260 под Linux. За основу проекта взята отладочная плата AS-9260 производства компании Argussoft, которая в свою очередь построена на основе AT91SAM9260-EK производства Atmel за той лишь разницей, что на плате Atmel установлено 64 Мб SDRAM, а на плате Argussoft 32 Мб. Проблема состоит в том, что приложение Linux работает не стабильно, в частности при чтении и записи во SPI Flash происходят ошибки ядра типа kernel oops и kernel panic ... Тестировали с различными версиями ядра от 2.6.18 до 2.6.33 - картина одинаковая. Дальнейшие исследования показали, что описанные нестабильности связаны с некорректной работой процессора с SDRAM, в частности: 1. Тестирование с использованием утилиты memtester под управлением Linux - при тестировании объема более 1-го мегабайта возникают те же ошибки. 2. Тестирование с использованием утилиты mtest под управлением U-Boot - при тестировании объема менее 8-ми мегабайт тест проходит успешно в любой области памяти из доступного объема 32 мегабайта. При тестировании объема памяти более 8-ми мегабайт, начиная с любого адреса, возникает ошибка, состоящая в том что при чтении блока часть данных не совпадает с записанными (чтение и запись про- исходит 32-битными словами), а именно, если записали 8 мегабайт и 4 байта, то первые 4 байта (в начале тестируемого блока) оказываются отличными от записанных (закономерно инвертирован 22-й бит - при записи 0x00000000 чтение возвращает 0x00200000, а при записи 0xFFFFFFFF чтение возвращает 0xFFDFFFFF). Такая ошибка происходит для любого превышения над 8-ю мегабайтами. Если модифицировать mtest таким образом, чтобы запись и чтение выполнялись не для 32-х разрядных слов, а для 8-ми - тест проходит успешно). 3. Тестирование через пакет SAMBA - ошибки возникают при записи в SDRAM любого файла объемом более 8-ми мегабайт при последующем сравнении с исходным. 4. Тестирование из под IAR - идентично тестированию из под U-Boot (в IAR перенесен исходный код утилиты mtest). Если кто-то в состоянии оказать нам помощь в решении данной проблемы - прошу откликнуться. Мы готовы предложить выгодные условия совместного сотрудничества.
|