Close

Odpověď na: aktualizování firmwaru přes uart

Úvodní stránka Fórum Vaše projekty Arduino aktualizování firmwaru přes uart Odpověď na: aktualizování firmwaru přes uart

#11149
Vojtěch Vosáhlo
Účastník

ale co dál, ještě mi nejde do hlavy jak je to s “pocatecniAdresaX” a “velikostStrankyX”

Tyhle proměnné slouží k nastavení velikosti stránky a počáteční adresy od které se bude zapisovat. Rozdělil jsem je do dvou bytů (2x8bit) protože bootloader očekává 16bit proměnné ale programator.write() umí odeslat jen jeden byte. Je tedy jednodušší nadefinovat proměnné jako 2 byty a pak je tak i odeslat. Pokud bych tedy měl velikost stránky 0x0080, nastavil bych velikostStrankyA na 0x00 a velikostStrankyB na 0x80.

mohu nahravana data zapsat takto?
programator.write(“100000000C945…0001FF”);

Máte prakticky 3 možnosti jak zapisovat. Jako jednotlivé byty – programator.write(0x50);

Jako string ve kterém je vlastně každé písmenko byte – programator.write(„P“); Toto by vlastně poslalo 0x50.

Jako pole bytů – programator.write(buf, len);
buf je pole bytů které chcete vypsat
len je velikost tohoto pole

byte buf[2] = {0x50, 0x60};
programator.write(buf, sizeof(buf));

Tohle by vypsalo 0x50 a 0x60.

Takže tak jak jste psal se to vlastně vypsat úplně nedá, místo těch HEX čísel by tam museli být znaky reprezentující ta čísla.

Mohl by jste mi případně poslat celý funkční program pro nahrání blink?

Asi zase zítra ale rovnou říkám že budu trochu podvádět 🙂 Budu tam posílat program v GCC a né C++. Blink které je v arduinu má asi 1KB a to je hodně bytů které bych musel přepsat ručně do pole. Proto to bude v GCC kde má blink 176B, to je výrazně méně.

Abych odpověděl, dostal jsem se k osciloskopu keysight DSOX1102G, jen škoda že když jsem se s ním chtěl podávat na data v uartu tak napsal, že bych si ten doplněk musel koupit, což mě štve (má na to knoflík a stejně se to musí zvlášť platit)

Taky jsem na ně koukal, za tu cenu se to skoro nedá nekoupit, no, nekoupil jsem ho. Takovéhle dokupování je opravdu nanic.