Я хочу записать данные на SD-карту zedboard. Я могу записывать данные в DRAM. Теперь я хочу прочитать данные DRAM и записать их на Sdcard. Я следил за этим (http://elm-chan.org/fsw/ff/00index_e.html), но это не соответствует моему требованию. Я не могу найти ни одного учебника, никакого примера и т. Д. Для этого. Пожалуйста, любую ссылку на учебник или любой пример. Спасибо.
Запись данных на sdcard zedboard
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-карту очень просто.
- Чтобы включить файловую систему Fat, внутри Xilinx SDK откройте пакет поддержки Board (файл system.mss) и выберите Изменить настройки этого BSP. В разделе Обзор вы можете выбрать xilffs.
- Затем вы должны написать программное обеспечение для доступа к 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
Чувак, я сделал все это и получил ошибку неопределенной функции для f_mount и f_open. В каком файле должны быть определены эти функции?
- person JohnTortugo; 24.02.2017
Привет @JohnTortugo, эти функции определены внутри библиотеки FatFS (ссылка 1). Это случалось со мной несколько раз, потому что Vivado SDK не компилировал файлы в правильном порядке. Чтобы решить эту проблему, мне пришлось снять флажок xilffs, попытаться скомпилировать (это не удастся), снова установить флажок, и после этого должно работать. Дайте мне знать, если это работает.
- person delirium; 08.03.2017
Привет, @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