Lutovid 0 4 сентября, 2020 Опубликовано 4 сентября, 2020 · Жалоба Привет всем! Возникла проблема с sd картой. Решил в качестве тестов использовать пример от xilinx (прикрепил файл). Плата zc702. Беру в sdk пребилд hw_platform для zc702, в bsp ставлю галку на использование библиотеки xilffs, в качестве исходников софта использую этот файл. По идее, я полагал, что при настолько дефолтных условиях пример должен работать из коробки. В итоге фэйлится на f_write - возвращает FR_DISK_ERR. После ряда тестирований начало фэйлиться на f_mkfs - возвращает FR_NOT_READY. Я грешу на то, что SD карта не поддерживается, но линукс с нее стартовал когда-то на этой же плате. Подскажите пожалуйста, что может быть причиной такого поведения? P/S Ключ защиты записи на самой карте не стоит, переключатели бута ставил и в положение загрузки с флешки и в положение загрузки по джтаг - это не изменило картины. xilffs_polled_example.c Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jury093 2 5 сентября, 2020 Опубликовано 5 сентября, 2020 · Жалоба 10 часов назад, Lutovid сказал: Подскажите пожалуйста, что может быть причиной такого поведения? а не смущает, что в вашем сишнике в двух местах написано, как должно выглядеть имя файла, типа * To test logical drive 0, FileName should be "0:/<File name>" or а у вас static char FileName[32] = "Test.bin"; и еще - "which is previously formatted with FATFS" - попробуйте в FAT16 раздел отформатировать.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lutovid 0 5 сентября, 2020 Опубликовано 5 сентября, 2020 · Жалоба 10 hours ago, Jury093 said: а не смущает, что в вашем сишнике в двух местах написано, как должно выглядеть имя файла, типа * To test logical drive 0, FileName should be "0:/<File name>" or а у вас static char FileName[32] = "Test.bin"; и еще - "which is previously formatted with FATFS" - попробуйте в FAT16 раздел отформатировать.. там написано * To test with different logical drives, drive number should be mentioned in * both FileName and Path variables. By default, it will take drive 0 if drive * number is not mentioned in the FileName variable. Раз я тестирую SD0, то по идее не нужно задавать имя "0:/Test.bin" А Path указан корректно TCHAR *Path = "0:/"; Я отформатировал с компа sd под fat32. Надо попробовать fat16, но мне как-то это не пришло в голову, раз не написано какой fat Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Jury093 2 5 сентября, 2020 Опубликовано 5 сентября, 2020 · Жалоба 42 минуты назад, Lutovid сказал: там написано * To test with different logical drives, drive number should be mentioned in * both FileName and Path variables. By default, it will take drive 0 if drive * number is not mentioned in the FileName variable. Раз я тестирую SD0, то по идее не нужно задавать имя "0:/Test.bin" А Path указан корректно TCHAR *Path = "0:/"; Я отформатировал с компа sd под fat32. Надо попробовать fat16, но мне как-то это не пришло в голову, раз не написано какой fat для паранойи лучше все же прописать и точно знать номер выбранного накопителя, чем надеятся на умолчания неизвестной тухлости.. ок, вот там https://stackoverrun.com/ru/q/11764100 подобную проблему решали шаманскими способами уменьшением емкости uSD и введением задержки полагаю, что вышеприведенная функция main() вызывается после инита контроллера MMC/SD в zynq и сделаны начальные обращения к uSD, и кстати, если попробовать чтение сектора или файла, то работает? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lutovid 0 7 сентября, 2020 Опубликовано 7 сентября, 2020 · Жалоба До этого проводил тесты с флешкой 16 гигов fat 32, сейчас 4Гига fat16 - тест прошел, спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться