This shows you the differences between two versions of the page.
si:laboratoare:01 [2023/10/02 20:53] dan.tudose [Compilarea și rularea] |
si:laboratoare:01 [2024/09/24 19:49] (current) florin.stancu [Compilarea și rularea] |
||
---|---|---|---|
Line 20: | Line 20: | ||
==== Linux ==== | ==== Linux ==== | ||
- | Dacă rulați pe un sistem cu Linux nativ, continuați de la pasul [[01#compilarea_si_incarcarea_pe_placuta|Compilarea și încărcarea pe placă]]. | + | Dacă rulați pe un sistem cu Linux nativ, continuați de la pasul [[01#compilarea_si_incarcarea_pe_placa|Compilarea și încărcarea pe placă]]. |
==== Windows ==== | ==== Windows ==== | ||
Line 78: | Line 78: | ||
<code> | <code> | ||
mkdir ~/nuttxspace && cd ~/nuttxspace | mkdir ~/nuttxspace && cd ~/nuttxspace | ||
- | git clone https://github.com/apache/incubator-nuttx.git nuttx | + | git clone --branch=nuttx-12.5.1 https://github.com/apache/incubator-nuttx.git nuttx |
- | git clone https://github.com/apache/incubator-nuttx-apps.git apps | + | git clone --branch=nuttx-12.5.1 https://github.com/apache/incubator-nuttx-apps.git apps |
</code> | </code> | ||
Line 105: | Line 105: | ||
cd ~/nuttxspace/nuttx | cd ~/nuttxspace/nuttx | ||
./tools/configure.sh -l esp32-sparrow-kit:nsh | ./tools/configure.sh -l esp32-sparrow-kit:nsh | ||
- | make -j4 | + | make EXTRAFLAGS="-DESP32_IGNORE_CHIP_REVISION_CHECK" -j4 |
esptool.py erase_flash | esptool.py erase_flash | ||
make flash ESPTOOL_PORT=/dev/ttyUSB0 ESPTOOL_BAUD=115200 ESPTOOL_BINDIR=../esp-bins | make flash ESPTOOL_PORT=/dev/ttyUSB0 ESPTOOL_BAUD=115200 ESPTOOL_BINDIR=../esp-bins | ||
</code> | </code> | ||
+ | |||
+ | <note warning> | ||
+ | Oficial, NuttX nu este garantat că funcționează pe revizii vechi ale chip-ului ESP32, și, din păcate, RTOS-ul va bloca rularea cu un PANIC, după cum puteți vedea în [[https://github.com/apache/nuttx/blob/c724ed51fbb36b3e65003e474a3b7517bb91e2e7/arch/xtensa/src/esp32/esp32_start.c#L235|codul sursă de aici]]. | ||
+ | |||
+ | Observăm că putem defini simbolul ''ESP32_IGNORE_CHIP_REVISION_CHECK'' pentru a trece peste această verificare, pe care îl putem insera prin variabla ''EXTRAFLAGS'' ca în exemplul de mai sus. Din păcate, acest workaround va trebui **MEREU** activat la compilare... așadar, **nu-l uitați**! | ||
+ | </note> | ||
+ | |||
+ | <hidden>Uneori, dacă se uită oricare din flaguri sau se configurează greșit proiectul (e.g., nu se pune argumentul cu tipul plăcii bun), compilarea NuttX va crăpa cu mesaje de eroare dubioase. Ca workaround de urgență (dacă nu merge un simplu ''make distclean'' și configure din nou), se recomandă ștergerea directoarelor ''nuttx'' și ''apps'' și re-descărcarea lor pentru a nu pierde timp cu depanarea în zadar... | ||
+ | </hidden> | ||
În functie de tipul de placă pe care rulați, este posibil să fie nevoie să apăsați butonul de ''BOOT'' (''IO0'') atunci când încărcați NuttX. Astfel, placa intră în modul de "Download" - în mod normal, placa este în starea de "Boot". Butonul trebuie apăsat doar atunci când se încearcă stabilirea conexiunii cu firmware-ul de pe ESP32, așa cum se poate vedea mai jos: | În functie de tipul de placă pe care rulați, este posibil să fie nevoie să apăsați butonul de ''BOOT'' (''IO0'') atunci când încărcați NuttX. Astfel, placa intră în modul de "Download" - în mod normal, placa este în starea de "Boot". Butonul trebuie apăsat doar atunci când se încearcă stabilirea conexiunii cu firmware-ul de pe ESP32, așa cum se poate vedea mai jos: | ||
Line 132: | Line 141: | ||
===== Exerciții ===== | ===== Exerciții ===== | ||
- | **1.** Folosind sistemul de build al NuttX, activați compilarea aplicației "Hello, World!". Codul sursă îl puteți găsi în ''apps/examples/hello''. Odată încărcat pe plăcuță, rulați aplicația din linie de comandă. | + | **1.** Folosind sistemul de build al NuttX, activați compilarea aplicației "Hello, World!". Codul sursă îl puteți găsi în ''apps/examples/hello''. Odată încărcat pe placă, rulați aplicația din linie de comandă. |
<note tip> | <note tip> |