Перейти к содержанию
    

SD card zynq

Привет всем!

Возникла проблема с 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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 раздел отформатировать..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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, и кстати, если попробовать чтение сектора или файла, то работает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

До этого проводил тесты с флешкой 16 гигов fat 32, сейчас 4Гига fat16 - тест прошел, спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...