OpenOcd távvezérlés parancssorból

Fórumok

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

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. 
 

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