Skocz do zawartości

Prośba o pomoc w skompilowaniu projektu dla ESP32


anna_michalska5

Pomocna odpowiedź

Witam.

Napotkałam ciekawy projekt z klawiaturą i2c i chciałabym go wykonać. Dopiero wszystkiego się uczę, ale takie niesamowite projekty powodują, że już trzecią noc nie śpię, żeby to skompilować. Mimo wszystko nadal się nie zniechęcam  

https://github.com/Jean-MarcHarvengt/espMCUME

Próbowałam skompilować ten projekt za każdym razem z błędem. Używałam różnych wersji esp-idf na podstawie komunikatów podczas prób kompilacji doszłam do wniosku, że będzie to któraś z wersji 3.x.x.  Nie wiem jak sprawdzić w kodzie której wersji użyć aby projekt skompilował się poprawnie. Prosiłabym o pomoc w określeniu wersji esp-idf oraz ewentualnie żeby ktoś to skompilował pod płytkę ttgo-t8 i udostępnił mi skompilowane binaria, które mogłabym sflashować za pomocą flashtool'a. Przesunięcia do flashowania są dla mnie zrozumiałe w kodzie, więc z resztą raczej sobie poradzę. Nie chcę się za bardzo zagłębiać w kod tego projektu, po prostu chciałabym zbudować to urządzenie. Moje dzieci bardzo by się z niego ucieszyły. 

Może znajdzie się ktoś z większym doświadczeniem kto mógłby jakoś pomóc kobiecie na zakręcie 🤣.

Z góry dziękuję.

Pozdrawiam forumowiczów   

Link do komentarza
Share on other sites

Toolchain version: crosstool-ng-1.22.0-80-g6c4433a
Compiler version: 5.2.0

esp-idf v3.2.5

Udało mi się ale folder espboot ma błędy podczas kompilacji przez co nie działa selektor emulatorów. Każdy emulator kompiluje się i działa jako osobna aplikacja .

Może ktoś kto zna się na programowaniu pomoże Tobie bardziej tak by espboot kompilował się poprawnie.

Pozdrawiam.

20210601_003112.jpg

  • Lubię! 1
Link do komentarza
Share on other sites

Według tego co widać z konsoli brakuje biblioteki: Future Composer audio decoder.

w folderze espboot/main/LibFC14/ są pliki, ale chyba potrzebna jest ich kompilacja.

@anna_michalska5

po edycji pliku /espMCUME/espboot/main/component.mk na:

#
# Main component makefile.
#
# This Makefile can be left empty. By default, it will take the sources in the
# src/ directory, compile them and link them into lib(subdirectory_name).a
# in the build directory. This behaviour is entirely configurable,
# please read the ESP-IDF documents if you need to do this.
#

COMPONENT_SRCDIRS +=LibFC14

CPPFLAGS += -Wno-error=maybe-uninitialized -Wno-error=sequence-point -Wno-error=implicit-int -Wno-error=pointer-sign -Wno-error=unused-function -Wno-error=implicit-function-declaration -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-error=char-subscripts -Wno-error=attributes -Wno-error=delete-non-virtual-dtor 

powinien się projekt kompilować bez błędów:

898110897_VirtualBox_LinuxMint_02_06_2021_23_36_49.thumb.png.5c92f528f902b543a36911f1caeaa73c.png

Edytowano przez polihedron
pliki
  • Lubię! 1
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

23 godziny temu, anna_michalska5 napisał:

Dziękuje serdecznie. espboot się kompiluje i działa poprawnie. Natomiast aplikacja z folderu "espsnd " sieje błędami. Czy kolega @polihedron mógłby zerknąć czego jeszcze nie ma?.

Dziękuje za wsparcie , bez Was nic bym nie zrobiła....

cieszę się, że udało się,

w wolnej chwili spróbuję ogarnąć temat.:)

 

@anna_michalska5

podobna sytuacja jak poprzednio, w pliku /espMCUME/espsnd/main/component.mk:

#
# Main component makefile.
#
# This Makefile can be left empty. By default, it will take the sources in the
# src/ directory, compile them and link them into lib(subdirectory_name).a
# in the build directory. This behaviour is entirely configurable,
# please read the ESP-IDF documents if you need to do this.
#

COMPONENT_SRCDIRS +=LibFC14 \
                    StSnd   \
                    reSID

CPPFLAGS += -Wno-error=maybe-uninitialized -Wno-error=sequence-point -Wno-error=implicit-int -Wno-error=pointer-sign -Wno-error=unused-function -Wno-error=implicit-function-declaration -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wno-unused-parameter -Wno-error=char-subscripts -Wno-error=attributes -Wno-error=delete-non-virtual-dtor 
#-Werror=maybe-uninitialized  

 

jeśli w folderze main są dodatkowe foldery i masz błędy kompilacji, spróbuj dodać te nazwy folderów w component.mk

493056637_VirtualBox_LinuxMint_06_06_2021_20_05_51.thumb.png.838f206753f3a82db53db0fada82ddd7.png

Edytowano przez polihedron
pliki
  • Lubię! 2
Link do komentarza
Share on other sites

(edytowany)

Dzięki serdeczne. Udało mi się , tylko za diabła nie wiem jaki format  plików to cudo  odtwarza ? Dziękuje za cenną lekcję i nie ocenioną pomoc. ogólnie fajna maszynka  tylko emulator atari800 w porównaniu do atari800 autorstwa Rossum "Atari-8bit" wypada słabobo,bo czyta tylko pliki o rozszerzeniach *.rom. Natomiast nofrendo w tym konkretnym wydaniu pozwala załadować tylko romy o pojemności 32kb. co w rezultacie nie pozwala nawet pograć w Super Mario. Trzeba by było go wyczyścić i poprawić od początku.

Edytowano przez anna_michalska5
Link do komentarza
Share on other sites

9 godzin temu, anna_michalska5 napisał:

Dzięki serdeczne. Udało mi się , tylko za diabła nie wiem jaki format  plików to cudo  odtwarza ?

tu jest opis:

https://github.com/Jean-MarcHarvengt/espMCUME#installation

ale pewnie już doczytałaś,

co do ograniczenia pojemności dla nofrendo to nie mam pojęcia za bardzo, ale autor tam wymienia mario1:

Cytat

"nes" => for nes/nofrendo, put your .nes files here, onlt 32k games are supported (galaga,xevious,mario1...)

 

Link do komentarza
Share on other sites

Witam podepnę się pod pytanie koleżanki: -przeczytałem README.md kilka razy i nie ma żadnej wzmianki o obsługiwanych formatach przez aplikację "espsnd" .

Jeśli ktoś wie to prosił bym o info,bo jest to dla ,mnie ciekawe.

O.T.  :  

Jestem dopiero na wczesnym etapie nauki programowania , ale pomału zaczynam rozumieć kod. Z mojego wcześniejszego doświadczenia najwięcej nauczyłem się trafiając na problemy w kodzie i próbując je zrozumieć i naprawić tak by działało. Nie miałem wcześniej żadnej wiedzy, nawet podstawowej ,gdyż jestem samoukiem i wszystko czego się dowiedziałem musiałem szukać sam, bez wsparcia. Czasami trafił się ktoś kto życzliwie mi pomógł na jakimś forum i pokazał mi drogę którą mam iść. Dobrze że są tacy życzliwi ludzie jak np: @polihedron, bo nie każdy miał szanse uczyć się programowania w szkole , czy na uczelni.Nie poddawaj się i nie zniechęcaj, ponieważ porażki budują!!

pozdrawiam.

 

Edytowano przez smutek110
  • Lubię! 2
Link do komentarza
Share on other sites

9 godzin temu, polihedron napisał:

tu jest opis:

https://github.com/Jean-MarcHarvengt/espMCUME#installation

ale pewnie już doczytałaś,

co do ograniczenia pojemności dla nofrendo to nie mam pojęcia za bardzo, ale autor tam wymienia mario1:

 

Z opisu i pliku readme nie da się wyczytać jaki typ plików obsługuje. Przejrzałam opis już kilkukrotnie i dla espMCUME i MCUME i nie jest tam nigdzie napisane jaki typ plików espsnd  odtwarza . Nawet w szkielecie karty sd folder "snd" nie istniał i musiałam go ręcznie stworzyć i  z Readme.md nie wynika czego użyć. Czytałam opis parokrotnie i wiem tyle co wcześniej , czyli nic. Może nie czytam ze zrozumieniem , ale nie ma tam żadnej informacji jakie rozszerzenia plików umieścić w folderze "snd"  , ba nawet nie wspomnieli, ze takowy folder musi istnieć na sd. - dowiedziałam się tego z logów z monitora szeregowego.

Link do komentarza
Share on other sites

README

This is reSID, a reverse engineered software emulation of the MOS6581 SID (Sound Interface Device). This chip was used in the Commodore 64 computer. reSID is free software. See the file COPYING for copying permission. reSID is a C++ library containing a complete emulation of the SID chip. This library can be linked into programs emulating the MOS6510 MPU to play music made for the Commodore 64 computer. reSID has been successfully linked into VICE, a full-fledged Commodore 64 emulator, and SIDPLAY, a popular SID tune player. The VICE home page is: http://www.viceteam.org/ A patch for SIDPLAY can be found on the SIDPLAY home page: http://www.geocities.com/SiliconValley/Lakes/5147/ Various SID emulators exist, however reSID should still be of great interest to Commodore 64 nostalgics. The emulator engine is cycle-based, emulating the internal operations of the SID chip. SID's audio filter is modeled as an actual two-integrator-loop biquadratic filter circuit. The engine has been developed based on available information on SID, sampling of the OSC3 and ENV3 registers, filter theory, and meticulous testing. In short, a scientific approach has been taken to model the SID chip as accurately as possible. To our knowledge reSID is by far the most accurate SID emulator ever created. This comes at a price; what is considered a fairly fast CPU at the time of this writing is needed to run the emulator.

 

 

Prawdopodobnie odtwarza format audio dla commodore64, ale tylko domniemywam..

Niech ktoś to potwierdzi/zaneguje

Edytowano przez smutek110
  • Lubię! 1
Link do komentarza
Share on other sites

2 godziny temu, anna_michalska5 napisał:

Z opisu i pliku readme nie da się wyczytać jaki typ plików obsługuje. Przejrzałam opis już kilkukrotnie i dla espMCUME i MCUME i nie jest tam nigdzie napisane jaki typ plików espsnd  odtwarza .

 

przy odrobinie rozumienia C można spróbować wgryźć się w kod:

plik espsnd/main/emuapi.h

// Title:     <                                        >
#define TITLE "          SND     Emulator             "
#define ROMSDIR "snd"

apka to sound emulator, a folder plików ma nazwę "snd"

 

plik espsnd/main/sndplay.cpp

void snd_Init(void)
{
  switch (mustype) {
    case C64Dmp:
      playing = true;
      break;
    case AmFc:
      if (musbuffer) {
        bool haveModule = false;  
        fcDecoder = fc14dec_new();
        haveModule = fc14dec_init(fcDecoder,(void*)musbuffer,mussize);
        if ( !haveModule ) {
          fc14dec_delete(fcDecoder);
          printf("FC module not supported\n");
        }
        else {
          printf("FC music loaded\n");
          fc14dec_mixer_init(fcDecoder,22050,16,1,0 /*32767*/);
          playing = true;
        }
      }
      break;
    case StYm:
      if (musbuffer) {
        ymDecoder = ymMusicCreate();
        printf("YM music loader\n");    
        if (ymMusicLoadMemory(ymDecoder,(void*)musbuffer,mussize))
        { 
          printf("YM music loaded\n");
          ymMusicInfo_t info;
          ymMusicGetInfo(ymDecoder,&info);
          printf("Name.....: %s\n",info.pSongName);
          printf("Author...: %s\n",info.pSongAuthor);
          printf("Comment..: %s\n",info.pSongComment);
          printf("Duration.: %d:%02d\n",info.musicTimeInSec/60,info.musicTimeInSec%60);
          printf("Driver...: %s\n", info.pSongPlayer);
          ymMusicSetLoopMode(ymDecoder,YMTRUE); 
          ymMusicPlay(ymDecoder);         
          playing = true;
        } 
      }
      break;
    default:
      break;
  }  
}

czyli, znowu, że apka pewnie odtwarza muzykę,

a dalej ten sam plik:

void snd_Start(char * filename)
{
  mussize = emu_FileSize(filename);
  char *dot = strrchr(filename, '.');
  if (dot && !strcmp(dot, ".dmp")) {
    mustype = C64Dmp; 
    if (emu_FileOpen(filename) == 0) {
      printf("SID music failure, cannot open\n");        
    }   
  }
  else if (dot && !strcmp(dot, ".fc")) {
    mustype = AmFc; 
    musbuffer = emu_Malloc(mussize);
    if (musbuffer)
    {
      if (emu_FileOpen(filename)) {
        if (emu_FileRead((char*)musbuffer, mussize) != mussize ) {
          musbuffer = nullptr;
        }
        emu_FileClose();
      } else {
        musbuffer = nullptr;
      }  
    }
    if (musbuffer == nullptr) {
      printf("FC music failure, cannot open/allocate\n");
    }           
  }
  else if (dot && !strcmp(dot, ".ym")) {
    mustype = StYm; 
  }
}

zgaduję, że apka potrzebuje plików z rozszerzeniem: .dmp .fc .ym

 

 

4 godziny temu, smutek110 napisał:

Czasami trafił się ktoś kto życzliwie mi pomógł na jakimś forum i pokazał mi drogę którą mam iść. Dobrze że są tacy życzliwi ludzie jak np: @polihedron

dzięki^^

Edytowano przez polihedron
  • Lubię! 1
Link do komentarza
Share on other sites

Po dłuższej dedukcji doszłam do wniosku, że prawdopodobnie jest to aplikacja SID player. Tylko SID player obsługuje rozszerzenia *.sid a program sugeruje rozszerzenia :

*.ym

*.fc

*.dmp 

z tego co mówiłeś. Jestem zupełnie zdezorientowana i nie wiem co robić, bo *.fc to pliki ATARI ST

 

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.