реклама на сайте
подробности

 
 
> посоветуйте плиз по работе с файлами на CompactFlash на SP605 борде, есть готовые функции по чтению/записи файлов на флешке?
Krys
сообщение Oct 28 2014, 06:04
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Здравствуйте. Посоветуйте плиз по работе с файлами на CompactFlash на SP605 борде. Есть готовые функции по чтению/записи файлов на флешке? У себя локально по этим путям:
c:\Xilinx\14.7\ISE_DS\EDK\sw\XilinxProcessorIPLib\drivers\sysace_v2_00_a\
я нашёл только, что тут функции умеют лишь доступ к блокам (ну или секторам?). Поднимать ФАТ16 вручную не хочется. Может уже всё готовое есть?


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
Krys
сообщение Oct 28 2014, 10:05
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Нарыл тут http://www.xilinx.com/support/documentatio..._3/oslib_rm.pdf (стр. 156), что мне нужна библиотека LibXil FFS. Как такое подключается? Попробовал прописать в исходник хедеры, указанные в табличке, - не видит таких.

Вот даже примерчик нарыл по использованию
Код
int main()
{

    xil_printf("\n\r Hello \n\r");
    const char *file="test.txt";
    const char*mode="w";

    SYSACE_FILE *ps;
    ps=sysace_fopen (file, mode);

    if(ps==NULL)
        xil_printf(" FILE OPEN FAILED !!! \n\r");

    else
    {
        xil_printf(" FILE OPEN SUCCESSFULL !!! \n\r");
        sysace_fclose (ps);

    }

    return 0;


}

Но у меня эти функции не видятся, ошибку даёт, что не знает таких.
Как сделать, чтобы он их увидел?

Вот даже советуют
Цитата
You can refer to ML40x, ML50x board BSB example design; there is a testfats software application available which demos the basic usage of the Xilfatfs library.
Но как этот пример выколупать я так и не понял. Может кто знает решение.

Поскольку я во встраиваемых процессорных системах новичок, то мои вопросы могут иметь элементарное решение )) Но я увы его не знаю.

Всё, по крайней мере с последним вопросом разобрался. Чтобы это всё увиделось нужно:
1. В EDK в Project Explorer нажать правой кнопкой на [имя вашего проекта]_BSP, выбрать Board Support Package Settings и поставить галочки напротив xilfatfs и xilflash, а в исходнике прописать
Код
#include "sysace_stdio.h"


Вот тут ещё крупица информации, где эти библиотеки находятся локально: http://www.xilinx.com/support/answers/45479.html
Там я нашёл и доку на использование функций. Теперь думаю дело попрёт.


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
Krys
сообщение Dec 8 2014, 07:36
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Внезапно появились проблемы с чтением флешки по указанным выше функциям.
Даю команду
Код
    bytes_read_x = sysace_fread(x_buf, 1, sizeof(x_buf), ps);

Она может выполняться до бесконечности. Нажимаю на паузу, смотрю, где застряла - почти всегда застревает на функции XSysAce_WaitForLock(BaseAddress):
Код
int XSysAce_ReadSector(u32 BaseAddress, u32 SectorId, u8 *BufferPtr)
{
    int NumRead;

    // Request and wait for the lock
    XSysAce_WaitForLock(BaseAddress);
...

Буквально на прошлой неделе всё работало, тут ни с того ни с сего перестало. Из изменений в прошивке - добавил только новые сигналы к Chipscope Analyzer и пересобрал. Больше ничего...

Получается, что не может получить монопольный доступ к флешке...

Кто-нибудь сталкивался с таким? Как лечить?


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
Krys
сообщение Dec 8 2014, 08:59
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



немного локализовал проблему: причина в длине файлов (несколько МБ), точнее в длине считывания. Если поставить 256 байтов на считывание - то не подвисает. Но и прошивка как-то влияет: на прошлой прошивке любая длина считывания не подвисает. Текущую прошивку на всякий случай пересобрал 2й раз - не помогло. Тайминги все выполняются, это тестовая борда SP-605


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post
Krys
сообщение Dec 10 2014, 03:23
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 002
Регистрация: 17-01-06
Из: Томск, Россия
Пользователь №: 13 271



Короче за этим доступом к файлам флешки нужен глаз да глаз. То не виснет, но считывает, а внутри где-то ошибки. Намучился. Пришлось городить контрольную сумму. И, если не сошлось, считывать заново...
Пока такой workarround. Как просто вылечить -не нашёл, просто обошёл. Этим удовлетворился, больше копать не буду, пока такого решения достаточно.


--------------------
Зная себе цену, нужно ещё и пользоваться спросом...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 26th July 2025 - 16:01
Рейтинг@Mail.ru


Страница сгенерированна за 0.01486 секунд с 7
ELECTRONIX ©2004-2016