рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдИрдПрд╕рдкреА -32 рдХреЗ рд▓рд┐рдП рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓рд┐рдЦрддреЗ рд╕рдордп, рдЧрддрд┐рд░реЛрдзреЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рдереА, рдЬреЛ рдХрднреА-рдХрднреА рдореЗрд░реА рд╡рдХреНрд░рддрд╛ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рдерд╛, рдЬрд┐рд╕рдиреЗ рдЬреЗрдЯреАрдЬреА рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╕рд╛рде рдбрд┐рдмрдЧ рдмреЛрд░реНрдб рдЦрд░реАрджрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдЬрдиреНрдо рджрд┐рдпрд╛ред рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рдЖрдпрд╛ - рдХрдЯреМрддреА рдХреЗ рддрд╣рдд рдкрдврд╝реЗрдВред
рдЙрдкрдХрд░рдгреЛрдВ рдФрд░ рд╕рд╛рдордЧреНрд░реА
рд╣рдорд╛рд░рд╛ рдореБрдЦреНрдп рдЪрд░рд┐рддреНрд░, рдпрд╛ рдмрд▓реНрдХрд┐, рдбрд┐рдмрдЧрд┐рдВрдЧ рдХрд╛ рд▓рдХреНрд╖реНрдп:

ESP-WROOM-32 рдЪрд┐рдк рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдмреЛрд░реНрдбред рдореИрдВрдиреЗ рдПрдХ рд▓рд┐рдВрдХ рдирд╣реАрдВ рджрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕ рдЬрдЧрд╣ рдкрд░ рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рд╣реА рдЦрд░реАрджрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИред
рдЕрдм - рдбрд┐рдмрдЧрд┐рдВрдЧ рдмреЛрд░реНрдб рд╣реА:


CJMCU FT232H
рдореИрдВрдиреЗ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдФрд░ 740.08 рд░реВрдмрд▓ рдХреЗ рд▓рд┐рдП рдПрд▓реАрдПрдХреНрд╕рдкреНрд░реЗрд╕ рдкрд░ рдСрд░реНрдбрд░ рдХрд┐рдпрд╛ ред ePacket рдбрд┐рд▓реАрд╡рд░реА рдХреЗ рд╕рд╛рдеред рд╢реБрд▓реНрдХ рдЯрд╛рдВрдХрд╛ рд▓рдЧрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреИрд░реЛрдВ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ, рдЬреЛ рдХреЗрд╡рд▓ рд╣рд╛рде рдореЗрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рддрд╛рд░реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ, 6 рдкреАрд╕реАред: рдПрдХ рдЫреЛрд░ рдорд┐рд▓рд╛рдк рдХреЗ рд▓рд┐рдП, рджреВрд╕рд░рд╛ рдИрдПрд╕рдкреА -32 рдХреЗ рд▓рд┐рдПред
рдореИрдВ рднреА рдПрдХ рдпреВрдПрд╕рдмреА рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗрдмрд▓ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдпрд╣ рддрдВрдЧ рд╣реЛрдЧрд╛ ...
рдХрдВрдкреНрдпреВрдЯрд░ (X) рдЙрдмрдВрдЯреВ 18.04 рдХреЗ рд╕рд╛рдеред
рд╕рдорд╛рдпреЛрдЬрди
ESO-32 рдХреЗ рд▓рд┐рдП OpenOCD рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
рдпрд╣рд╛рдБ рдЖрдк рдЕрдкрдиреЗ рдЖрдк рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ esp-idf рдХреЗ рдбреЙрдХ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
sudo apt-get install make libtool pkg-config autoconf automake texinfo libusb-1.0 libftdi1-2 git git clone --recursive https://github.com/espressif/openocd-esp32.git
рдореИрдВ рдЕрд▓рдЧ рд╕реЗ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВрдиреЗ OpenOCD рдХреЗ рдЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ sudo make install
рдХрд┐рдпрд╛ рд╣реИ ( sudo make install
), рдЬреЛ рдХрд┐ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ OpenOCD рд╣реЛрдиреЗ рдкрд░ рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИред
рд╣рдорд╛рд░реЗ рд▓рд┐рдП OpenOCD рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдирд╛
рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдореИрдВрдиреЗ рдбрд┐рдмрдЧ рдХрд╛рд░реНрдб рдФрд░ рдИрдПрд╕рдкреА -32 рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреЛ рд╕реНрд╡рдпрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрд░рд╣ рдирд┐рдХрд▓рд╛:
board.cfg:
transport select jtag adapter_khz 20000 # # set ESP32_ONLYCPU 1 # # set ESP32_RTOS none # RTOS source [find target/esp32.cfg]
interface.cfg:
interface ftdi ftdi_vid_pid 0x0403 0x6014 ftdi_layout_init 0x0c08 0x0f1b
рдПрдХ рдЙрджрдп рдирд┐рдпрдо рд▓рд┐рдЦрдирд╛
рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рдореБрджреНрджреЛрдВ рдХреЗ рдХрд╛рд░рдг, рд╣рдо USB рдбрд┐рд╡рд╛рдЗрд╕ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рдкрд╛рдПрдВрдЧреЗред рдпрд╣ udv рдирд┐рдпрдо рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЗ рд╕рд╛рде рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="6014", GROUP="plugdev", MODE="0666"' | sudo tee /etc/udev/rules.d/99-JTAG.rules sudo systemctl restart udev.service sudo udevadm control --reload-rules
рд╕рд╣рд╛рдпрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ
рдЕрдиреНрдп рдмрд╛рддреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕ рддрд░рд╣ рдХреА рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ:
openocd_command:
рдпрд╣ рдЖрдкрдХреЛ OpenOCD рдбреЗрдореЙрди рдХреЛ рд╕реАрдзреЗ рдХрдорд╛рдВрдб рднреЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдЙрд╕ рдкрд░ рдФрд░ рдмрд╛рдж рдореЗрдВред
рд╣рдо рд╕реАрдЬреЗрдПрдорд╕реАрдпреВ рдмреЛрд░реНрдб рдХреЛ рдИрдПрд╕рдкреА -32 рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ
рдпрд╣рд╛рдВ рд╣рдореЗрдВ рддрд╛рд░реЛрдВ рдФрд░ рдПрдХ рдЯрд╛рдВрдХрд╛ рд▓рдЧрд╛рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрд╣реЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗред рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╛рд▓рд┐рдХрд╛ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдХрд┐рд╕рд╕реЗ рдФрд░ рдХреНрдпреЛрдВ рдЬреБрдбрд╝рдирд╛ рд╣реИред
VIN рдФрд░ 3V3 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ
рдпрджрд┐ рдЖрдк рдИрдПрд╕рдкреА -32 рджреЗрд╡рдХрд┐рдЯ рд╕реЗ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдПрдХ рдЕрд▓рдЧ рддрд╛рд░ рдирд╣реАрдВ рдЦреАрдВрдЪрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк VIN рд╕реЗ + 5V рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд░реНрдорд╡реЗрдпрд░ JTAG рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рдПрдЧрд╛, рдЬреЛ, рдЬреИрд╕рд╛ рдХрд┐ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЕрдиреБрднрд╡ рдиреЗ рджрд┐рдЦрд╛рдпрд╛ рд╣реИ, рдмрд╣реБрдд рддреЗрдЬ рд╣реИред рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдПрдХ рд╢реВрдиреНрдп рдпрд╣ рд╣реИ рдХрд┐ UART рд▓реЙрдЧ рджреЗрдЦрдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди IMHO рдбрд┐рдмрдЧрд░ рдЗрд╕ рдХреНрд░рд┐рдпрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдИрдПрд╕рдкреА -32 рдХреЛ 5 рд╡реА рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдХреЗрд╡рд▓ рднрдХреНрддреЛрдВ рдХреЛред рдпрджрд┐ рдЖрдкрдХреЛ рдПрдХ рдЕрд▓рдЧ рдЪрд┐рдк рдХреЛ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕реЗ рд╕реАрдЬреЗрдПрдорд╕реАрдпреВ рдХрдирд╡рд░реНрдЯрд░ рд╕реЗ рдИрдПрд╕рдкреА -32 рдкрд░ 3V3 рдкрд░ + 3.3V рдХрдиреЗрдХреНрдЯ рдХрд░рдХреЗ рдЦреБрдж рдХреЛ рд╢рдХреНрддрд┐ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдХрд╣ рд╕рдХрддрд╛ рдХрд┐ рдХреНрдпрд╛ рдХрдирд╡рд░реНрдЯрд░ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рд╢рдХреНрддрд┐ рд╣реИ, рдПрдХ рдЕрд▓рдЧ рд╢рдХреНрддрд┐ рд╕реНрд░реЛрдд рд▓реЗрдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдФрд░ рд╣рд╛рдБ, рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ 5V рдФрд░ 3.3V рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рдирд╣реАрдВ рд╣реИред
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдореЗрд╢рд╛ GND рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ!
OpenOCD рдХреА рдЬрд╛рдБрдЪ рдХрд░ рд░рд╣рд╛ рд╣реИ
OpenOCD рдХреЛ рдЗрд╕ рддрд░рд╣ рдЪрд▓рд╛рдПрдВ:
openocd -s ' interface.cfg board.cfg' -f interface.cfg -f board.cfg
рдпрджрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд░рд╣рд╛, рддреЛ рд╡реЗ рдЖрдкрдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдПрдВрдЧреЗ:
Open On-Chip Debugger 0.10.0-dev (2018-08-22-14:47) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html adapter speed: 20000 kHz esp32 interrupt mask on Info : ftdi: if you experience problems at higher adapter clocks, try the command "ftdi_tdo_sample_edge falling" Info : clock speed 20000 kHz Info : JTAG tap: esp32.cpu0 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1) Info : JTAG tap: esp32.cpu1 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1) Info : esp32: Debug controller was reset (pwrstat=0x5F, after clear 0x0F). Info : esp32: Core was reset (pwrstat=0x5F, after clear 0x0F). Info : Detected debug stubs @ 3ffb3134 on core0 of target 'esp32' cpu0: Current bits set: BreakIn BreakOut RunStallIn cpu1: Current bits set: BreakIn BreakOut RunStallIn
рдЗрд╕рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд┐рдпрд╛!
рдорд╣рддреНрд╡рдкреВрд░реНрдг : рдЬрдм рдЖрдк рдбрд┐рдмрдЧрд┐рдВрдЧ рдореЗрдВ рд╡реНрдпрд╕реНрдд рд╣реЛрдВ, OpenOCD рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╣рд░ рд╕рдордп рд╕реНрдкрд┐рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдЧреНрд░рд╣рдг рд╕рдХреНрд╖рдо рдХрд░реЗрдВ
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЦреВрдмрд╕реВрд░рддреА рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдП рдЧрдП рдХрдИ рдЪрд░рдг рд╣реИрдВ, рдФрд░ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдирд╣реАрдВ рджреЛрд╣рд░рд╛рдКрдВрдЧрд╛ред
рдЧреНрд░рд╣рдг рдбрд┐рдмрдЧрд┐рдВрдЧ рдпреБрдХреНрддрд┐рдпрд╛рдБ
рдПрди рдмрдЯрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЬрд╛рдУ рдФрд░ рдмреЛрд░реНрдб рдкрд░ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВред рдХреЗрд╡рд▓ "рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ" рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВред
рдлрд░реНрдорд╡реЗрдпрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП
openocd_command 'program_esp32 _/.bin 0x10000 verify'
рдЖрдк рдЗрд╕реЗ openocd_command
рдХрд╕реНрдЯрдо рдХрдорд╛рдВрдб рдХреЗ openocd_command
рд╕реЗрдЯ рдХрд░рдХреЗ рдПрдХ рдмрд┐рд▓реНрдб рд▓рдХреНрд╖реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ "рд▓рдХреНрд╖реНрдп рдирд╛рдо" рдлрд╝реАрд▓реНрдб рдореЗрдВ рддрд░реНрдХ (рдЙрджреНрдзрд░рдг рдХреЗ рдмрд┐рдирд╛) рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд░реБрдХрдиреЗ рдФрд░ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЖрдкрдХреЛ рд╡рд╣ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рдЖрдкрдХреЛ рдЙрдореНрдореАрдж рдереАред рдЙрд╕рдХреЗ рдмрд╛рдж рдзреНрд╡рдирд┐ рдмрдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдПрдХ рдЯрд╛рдЗрдорд░ рдХреЗ рд╕рд╛рде рдЪреБрдЯрдХреБрд▓реЗ рдХреЗ рдХрд╛рд░рдг рдкрд╛рдЧрд▓ рдХреА рддрд░рд╣ рдмрдХрд╡рд╛рд╕ рдХрд░ рд░рд╣реА рд╣реИред
рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рдореЗрд░рд╛ рд╡рд░реНрддрдорд╛рди рдЕрдиреБрднрд╡ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдореИрдВ рдЖрдкрдХреЛ рдлрд▓рджрд╛рдпрдХ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреА рдХрд╛рдордирд╛ рдХрд░рддрд╛ рд╣реВрдВ (рд╣рдо рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдВрдЧреЗ, рдпрд╣ рд╕реБрдЦрдж рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ)!