Sziasztok!
Látszólag egyszerű problémára keresek több órája megoldást:
OpenOcd-n keresztül kapcsolódom a controllerre
Eclipse / gdb-n keresztül tökéletesen megy a debuggolás / sw letöltés (TCP/IP kapcsolat - 3333-as port)
Putty-on / telnet-en keresztül tudom vezérelni az OpenOcd-t a telnet porton (4444-es port)
Ugyanakkor nem találom a lehetőséget, hogy a putty-ot/telnet-et parancsorból meghívva parancsot küldjek az OpenOcd-nek. Erre azért lenne szükségem, hogy ne írjuk a flash-t gdb indításkor, csak ha tényleg szükség van rá. Pl: "echo program demo.elf | telnet localhost 4444" - az OpenOcd hibát ad, hogy érvénytelen file (de nem a demo.elf-re vonatkozik, mert még a telnet kapcsolódás közben adja, más parancsot sem hajt végre). A "telnet localhost 4444" -es paranccsal terminálból működik a letöltés.
Kicsit ide kapcsolódik: eclipse finomhangolás - nem találtam triviális leírást arról, hogy tudnék új parancs-gombot adni az eclipse-tool-bar-hoz, amihez parancssori parancsot tudnék rendelni.
Előre is köszönöm a segítséget:
Gábor
- 151 megtekintés
Hozzászólások
Imigyen (reszlet egy makefile-bol):
OCD=openocd
OCD_PRG=stlink-v2
OCD_MCU=stm32f4x
OCD_CFG = -f interface/$(OCD_PRG).cfg
OCD_CFG += -c "transport select hla_swd"
OCD_CFG += -f target/$(OCD_MCU).cfg -c "adapter_khz 100"
OCD_CFG += -c "reset_config srst_only srst_nogate"
[...]
upload: main.hex
$(OCD) $(OCD_CFG) -c init -c "reset halt" -c "flash write_image erase main.hex 0 ihex" -c "reset" -c "exit" || exit 0
Nem tudom pontosan mire gondolsz egeszen pontosan (vo: ne írjuk a flash-t gdb indításkor, csak ha tényleg szükség van rá.), de igy tudsz egyesevel parancssorbol parancsokat kiadni az openocd-nek es ezzel parhuzamosan letezo konfigokat/szrkipteket is be tudsz huzni egyszeruen. Ez itten fentebb egy sima `make upload` target, ami stlink-en keresztul feltolti a fimrware-t (main.hex) bele az MCU-ba.
Ja igen, ami meg szemet szurt az a *.elf. Azt ugy nem tudja megenni az MCU, csinalj belole hex-et elobb:
OBJCOPY=arm-none-eabi-objcopy
[...]
main.hex: main.elf
$(OBJCOPY) -O ihex main.elf main.hex
Bar persze lehet hogy mar tud ilyet is, de elso korben maradnek a *.hex-nel.
- A hozzászóláshoz be kell jelentkezni
Szervusz!
Kösz a fáradozást, de sajnos ez nem jó megoldás 2 okból:
1., ez a triviális megoldás (amit én is használgatok)
2., ennél a megoldásnál sok fölösleges lépést kell tenni, hogy új programot lehessen használni (gdb exit, OpenOcd exit, OpenOcd letölt, OpenOcd indít, gdb indít)
Na ezt a sok lépést szeretném lecserélni egy telnet-es letöltésre. Erre valami ötlet?
Gábor
- A hozzászóláshoz be kell jelentkezni
A'! Neked akkor viszont ez kell: https://linux.die.net/man/1/expect
- A hozzászóláshoz be kell jelentkezni
telnet helyett netcat?
- A hozzászóláshoz be kell jelentkezni
Van gyakorlati tapasztalatod is velük, vagy csak egy javaslat, hogy próbálkozzak vele, ha nagyon unatkozom?
- A hozzászóláshoz be kell jelentkezni
Sajnálom, de nem volt kéznél egy openOCD kompatibilis debuggerem sem (a legtöbb STLinkem átflasheltem JLinkre).
De ha hagyon unatkozol egy echo program demo.elf | nc localhost 4444 parancsot megpróbálhatsz kiadni.
- A hozzászóláshoz be kell jelentkezni