рдИрдПрд╕рдкреА -32 рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдмрдЬрдЯ рдбрд┐рдмрдЧрд░

рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдИрдПрд╕рдкреА -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 #     https://github.com/espressif/openocd-esp32/releases cd openocd-esp32 ./bootstrap ./configure # ,  FTDI-based adapters  make -j6 sudo make install 

рдореИрдВ рдЕрд▓рдЧ рд╕реЗ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВрдиреЗ 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:


 #!/bin/bash echo "$@" | telnet localhost 4444 

рдпрд╣ рдЖрдкрдХреЛ OpenOCD рдбреЗрдореЙрди рдХреЛ рд╕реАрдзреЗ рдХрдорд╛рдВрдб рднреЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рд▓реЗрдХрд┐рди рдЙрд╕ рдкрд░ рдФрд░ рдмрд╛рдж рдореЗрдВред


рд╣рдо рд╕реАрдЬреЗрдПрдорд╕реАрдпреВ рдмреЛрд░реНрдб рдХреЛ рдИрдПрд╕рдкреА -32 рд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ


рдпрд╣рд╛рдВ рд╣рдореЗрдВ рддрд╛рд░реЛрдВ рдФрд░ рдПрдХ рдЯрд╛рдВрдХрд╛ рд▓рдЧрд╛рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрд╣реЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗред рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╛рд▓рд┐рдХрд╛ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдХрд┐рд╕рд╕реЗ рдФрд░ рдХреНрдпреЛрдВ рдЬреБрдбрд╝рдирд╛ рд╣реИред


CJMCU рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдВJTAG рдЙрджреНрджреЗрд╢реНрдпрдИрдПрд╕рдкреА -32 рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░реЗрдВ
AD0TCK13
AD1рдЯреАрдбреАрдЖрдИ12
AD2TDO15
AD3рдЯреАрдПрдордПрд╕14
+ 5 рд╡реАVIN (рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдкрдврд╝реЗрдВ!)
+ 3.3 рд╡реА3V3 (рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдкрдврд╝реЗрдВ!)
GNDGND (рдЕрдЪрд╛рдирдХ)

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 рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╣рд░ рд╕рдордп рд╕реНрдкрд┐рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред


рдЧреНрд░рд╣рдг рд╕рдХреНрд╖рдо рдХрд░реЗрдВ


рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдЦреВрдмрд╕реВрд░рддреА рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдП рдЧрдП рдХрдИ рдЪрд░рдг рд╣реИрдВ, рдФрд░ рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдирд╣реАрдВ рджреЛрд╣рд░рд╛рдКрдВрдЧрд╛ред


рдЧреНрд░рд╣рдг рдбрд┐рдмрдЧрд┐рдВрдЧ рдпреБрдХреНрддрд┐рдпрд╛рдБ


  1. рдПрди рдмрдЯрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреВрд▓ рдЬрд╛рдУ рдФрд░ рдмреЛрд░реНрдб рдкрд░ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВред рдХреЗрд╡рд▓ "рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ" рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВред


  2. рдлрд░реНрдорд╡реЗрдпрд░ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП


     openocd_command 'program_esp32 _/.bin 0x10000 verify' 

    рдЖрдк рдЗрд╕реЗ openocd_command рдХрд╕реНрдЯрдо рдХрдорд╛рдВрдб рдХреЗ openocd_command рд╕реЗрдЯ рдХрд░рдХреЗ рдПрдХ рдмрд┐рд▓реНрдб рд▓рдХреНрд╖реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ "рд▓рдХреНрд╖реНрдп рдирд╛рдо" рдлрд╝реАрд▓реНрдб рдореЗрдВ рддрд░реНрдХ (рдЙрджреНрдзрд░рдг рдХреЗ рдмрд┐рдирд╛) рджрд░реНрдЬ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


  3. рд░реБрдХрдиреЗ рдФрд░ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЖрдкрдХреЛ рд╡рд╣ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рдЖрдкрдХреЛ рдЙрдореНрдореАрдж рдереАред рдЙрд╕рдХреЗ рдмрд╛рдж рдзреНрд╡рдирд┐ рдмрдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрд░реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдПрдХ рдЯрд╛рдЗрдорд░ рдХреЗ рд╕рд╛рде рдЪреБрдЯрдХреБрд▓реЗ рдХреЗ рдХрд╛рд░рдг рдкрд╛рдЧрд▓ рдХреА рддрд░рд╣ рдмрдХрд╡рд╛рд╕ рдХрд░ рд░рд╣реА рд╣реИред



рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рдореЗрд░рд╛ рд╡рд░реНрддрдорд╛рди рдЕрдиреБрднрд╡ рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдореИрдВ рдЖрдкрдХреЛ рдлрд▓рджрд╛рдпрдХ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреА рдХрд╛рдордирд╛ рдХрд░рддрд╛ рд╣реВрдВ (рд╣рдо рдИрдорд╛рдирджрд╛рд░ рд╣реЛрдВрдЧреЗ, рдпрд╣ рд╕реБрдЦрдж рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ)!

Source: https://habr.com/ru/post/hi421291/


All Articles