Запись данных на sdcard zedboard

Я хочу записать данные на SD-карту zedboard. Я могу записывать данные в DRAM. Теперь я хочу прочитать данные DRAM и записать их на Sdcard. Я следил за этим (http://elm-chan.org/fsw/ff/00index_e.html), но это не соответствует моему требованию. Я не могу найти ни одного учебника, никакого примера и т. Д. Для этого. Пожалуйста, любую ссылку на учебник или любой пример. Спасибо.


person Hammad urRehman    schedule 21.08.2015    source источник
comment
Какой программный стек вы используете на ZedBoard? линукс + бизибокс? Оголенный метал? Другой? Что вы подразумеваете под я могу записывать данные в DRAM? Как вы записываете данные в DRAM?   -  person Renaud Pacalet    schedule 26.08.2015
comment
Извините за поздний ответ, сегодня проверил. Я использую автономную систему. Я имею в виду, что я могу сгенерировать образец/фиктивные данные и записать их в ddr3, используя Axi_dma. Теперь мой вопрос решен, я могу даже записывать данные на SDCARD. Спасибо за ваш ответ.   -  person Hammad urRehman    schedule 31.08.2015


Ответы (3)


Если вы используете Vivado SDK, как я предполагаю, использовать SD-карту очень просто.

  1. Чтобы включить файловую систему Fat, внутри Xilinx SDK откройте пакет поддержки Board (файл system.mss) и выберите Изменить настройки этого BSP. В разделе Обзор вы можете выбрать xilffs.
  2. Затем вы должны написать программное обеспечение для доступа к SD-карте. Эта библиотека предлагает широкий спектр функций. Вы можете посмотреть здесь_1 в здесь_2 или в здесь_3. В этом втором справочнике предоставляется широкий спектр сложных функций.

Помимо этого, чтобы использовать SD-карту, ниже написано, что вам в основном нужно сделать. Обратите внимание, что это всего лишь обзор, и вам следует обратиться к ссылкам, которые я вам дал.

# Flush the cache
Xil_DCacheFlush();
Xil_DCacheDisable();

# Initialize the SD Card
f_mount(0, 0);
f_mount(0, <FATFS *>)

# Open a file using f_open

# Read and Write Operations
# Either use f_write or f_read

# Close your file with f_close

# Unmount the SD with f_mount(0,0)
person delirium    schedule 10.09.2015
comment
Чувак, я сделал все это и получил ошибку неопределенной функции для f_mount и f_open. В каком файле должны быть определены эти функции? - person JohnTortugo; 24.02.2017
comment
Привет @JohnTortugo, эти функции определены внутри библиотеки FatFS (ссылка 1). Это случалось со мной несколько раз, потому что Vivado SDK не компилировал файлы в правильном порядке. Чтобы решить эту проблему, мне пришлось снять флажок xilffs, попытаться скомпилировать (это не удастся), снова установить флажок, и после этого должно работать. Дайте мне знать, если это работает. - person delirium; 08.03.2017
comment
Привет, @JohnTortugo. Я добавил ответ, пожалуйста, проверьте, может быть он может решить вашу проблему, потому что я также столкнулся с той же проблемой, и моя проблема была решена с помощью нового синтаксиса, который я упомянул. - person Hammad urRehman; 09.03.2017

Обратите внимание, что опыт учит меня, что вам нужно записывать в файл блоками, кратными размеру блока файловой системы, который для файловой системы FAT обычно составляет 512 байт. Запись менее 512 байт и закрытие файла сделают его длину нулевой.

person Mac    schedule 15.09.2017

В новой версии Xilffs (Fatfs) синтаксис lib немного изменился.

Новый синтаксис:

static FATFS FS_instance; // File System instance 

const char *path = "0:/"; // string pointer to the logical drive number 

static FIL file1; // File instance 

FRESULT result; // FRESULT variable 

static char fileName[24] = "FIL"; // name of the log

result = f_mount(&FS_instance, path, 0);  //f_mount

result = f_open(&file1, (char *)fileName, FA_OPEN_ALWAYS | FA_WRITE); //f_open

Может быть, это может помочь вам.

person Hammad urRehman    schedule 09.03.2017