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

посоветуйте плиз по работе с файлами на CompactFlash на SP605 борде

Здравствуйте. Посоветуйте плиз по работе с файлами на CompactFlash на SP605 борде. Есть готовые функции по чтению/записи файлов на флешке? У себя локально по этим путям:

c:\Xilinx\14.7\ISE_DS\EDK\sw\XilinxProcessorIPLib\drivers\sysace_v2_00_a\

я нашёл только, что тут функции умеют лишь доступ к блокам (ну или секторам?). Поднимать ФАТ16 вручную не хочется. Может уже всё готовое есть?

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


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

Нарыл тут 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

Там я нашёл и доку на использование функций. Теперь думаю дело попрёт.

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


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

Внезапно появились проблемы с чтением флешки по указанным выше функциям.

Даю команду

    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 и пересобрал. Больше ничего...

 

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

 

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

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


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

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

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


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

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

Пока такой workarround. Как просто вылечить -не нашёл, просто обошёл. Этим удовлетворился, больше копать не буду, пока такого решения достаточно.

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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