Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[STM32][TrueStudio][C] - Zmiana nazwy pliku na karcie SD (FatFs)

07 Sie 2011 12:20 2811 7
  • #1 07 Sie 2011 12:20
    997333
    Użytkownik usunął konto  
  • #2 15 Sie 2011 15:19
    nenpa8lo
    Poziom 17  

    Należy ustawić _USE_LFN na 1, 2 lub 3, oraz dodać funkcje konwersji UNICODE ff_convert() oraz ff_wtoupper() :) więcej o LFN tutaj.

    Pamiętaj że wpłynie to znacząco na wielkość programu.

    0
  • #3 15 Sie 2011 15:49
    atom1477
    Poziom 43  

    Oraz sprawi że program stanie się nielegalny jak nie opłaci się Microsoftowi licencji za wykorzystanie długich nazw plików (dotyczy to przypadku jak się taki program wykorzystuje do celów zarobkowych, jak tylko dla siebie to nie ma to znaczenia).

    0
  • #4 16 Sie 2011 03:55
    airrs
    Poziom 2  

    udało się zmienić nazwę, ale jak to zwykle bywa kolejny problem się urodził ... mianowicie, gdy tworzę plik z długą nazwą po raz pierwszy to zapis do pliku jest przeprowadzany bezproblemowo, natomiast, gdy chcę przeprowadzić tę operację po raz drugi (na karcie istnieje plik o długiej nazwie) to zawiesza mi cały system i nic nie daje znaku życia :(

    0
  • #5 16 Sie 2011 11:46
    nenpa8lo
    Poziom 17  

    @airrs opis twojego problemu kompletnie nic nie mówi. Proszę podaj więcej detali, jakiś debug, kod....

    0
  • #6 16 Sie 2011 12:25
    airrs
    Poziom 2  

    problem jest dokładnie taki jak napisałem ... czyli gdy na karcie istnieje już jakiś plik o dłuższej nazwie np. 1-15082011-120305-15082011-120350.txt to, gdy program dochodzi do momentu utworzenia nowego pliku o strukturze nazwy podobnej to kompletnie się zawiesza. problem ten nie występuje, gdy pliki maja się nazywać powiedzmy 1.txt, 2.txt . Zrobiłem nawet zabieg by tworzyć plik na karcie, a po zakończeniu rejestracji przenosić go do konkretnego katalogu. Działa to dopóki nie chcę przenieść do tego katalogu drugiego pliku. Czyli jest tak jakby dwa pliki o długich nazwach nie mogły być koło siebie (w tej samej ścieżce dostępu).

    0
  • #7 16 Sie 2011 13:19
    atom1477
    Poziom 43  

    Ten opis tez nic nie mówi. Dalej brak kodu i debugu.

    0
  • #8 16 Sie 2011 15:30
    airrs
    Poziom 2  

    ale kod tu nic nie pomoże bo kod jest prawidłowy i działający (bo tworzy ten pierwszy plik), myślałem, że podpowiecie mi dlaczego nie chce utworzyć drugiego pliku ... czy przy tworzeniu długich plików są jakieś mechanizmy o których nie wiem i czy trzeba zastosować jakąś specjalną procedurę niż tylko zamontować kartę, utworzyć plik i go zapisać, zamknąć.

    Dodano po 9 [minuty]:

    debugować w czasie rzeczywistym też nie mogę ... wysyłam sobie tylko znaczniki przez uart i jest tak jak mówiłem, że dochodzi do funkcji tworzenia pliku Create_Always i wywala system (napewno nie zawiesza się w jakiejś funkcji od fatfs bo nawet przerwania nie działają i RTC siada) ... możecie podrzucić kody tych dwóch funkcji ff_convert() i ff_wtoupper() ?

    Dodano po 1 [godziny] 12 [minuty]:

    problem rozwiązany ... dziękuję za pomoc ... jednak te funkcje ff_convert i ff_wtoupper() nie były do końca poprawne

    0