рдореА рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдордЪреНрдпрд╛ рд╡рд┐рдХрд╕рдХрд╛рдВрдкреИрдХреА рдПрдХ рдЖрд╣реЗ
рддреБрдореНрд╣реА рд╕рд░реНрдЪ рдЗрдВрдЬрд┐рдирдордзреНрдпреЗ тАЬрдУрдкрдирд╕реАрд╡реНрд╣реА рдСрди STM32 рдмреЛрд░реНрдбтАЭ рдЕрд╕реЗ рдХрд╛рд╣реАрддрд░реА рдЯрд╛рдЗрдк рдХреЗрд▓реНрдпрд╛рд╕, рддреБрдореНрд╣рд╛рд▓рд╛ рд╣реА рд▓рд╛рдпрдмреНрд░рд░реА STM32 рдмреЛрд░реНрдб рдХрд┐рдВрд╡рд╛ рдЗрддрд░ рдорд╛рдпрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░рд╡рд░ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕ рд╕реНрд╡рд╛рд░рд╕реНрдп рдЕрд╕рд▓реЗрд▓реЗ рдХрд╛рд╣реА рд▓реЛрдХ рд╕рд╛рдкрдбрддреАрд▓.
рдЕрд╕реЗ рдмрд░реЗрдЪ рд╡реНрд╣рд┐рдбрд┐рдУ рдЖрд╣реЗрдд рдЬреЗ рдирд╛рд╡рд╛рдиреБрд╕рд╛рд░ рдард░рд╡реВрди, рдХрд╛рдп рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ рддреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреЗрд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ, рдкрд░рдВрддреБ рд╕рд╛рдорд╛рдиреНрдпрддрдГ (рдореА рдкрд╛рд╣рд┐рд▓реЗрд▓реНрдпрд╛ рд╕рд░реНрд╡ рд╡реНрд╣рд┐рдбрд┐рдУрдВрдордзреНрдпреЗ) STM32 рдмреЛрд░реНрдбрд╡рд░, рдХреЕрдореЗрд░рд╛рдордзреВрди рдлрдХреНрдд рдкреНрд░рддрд┐рдорд╛ рдкреНрд░рд╛рдкреНрдд рдЭрд╛рд▓реА рдЖрдгрд┐ рдкрд░рд┐рдгрд╛рдо рд╕реНрдХреНрд░реАрдирд╡рд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдЭрд╛рд▓рд╛, рдЖрдгрд┐ рдкреНрд░рддрд┐рдорд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрд╡рддрдГ рдПрдХрддрд░ рдирд┐рдпрдорд┐рдд рд╕рдВрдЧрдгрдХрд╛рд╡рд░ рдХрд┐рдВрд╡рд╛ рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдмреЛрд░реНрдбрд╡рд░ рдХреЗрд▓реА рдЧреЗрд▓реА (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ).
рд╣реЗ рдХрдареАрдг рдХрд╛ рдЖрд╣реЗ?
рд╢реЛрдз рдХреНрд╡реЗрд░реАрдВрдЪреА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдпрд╛ рд╡рд╕реНрддреБрд╕реНрдерд┐рддреАрджреНрд╡рд╛рд░реЗ рд╕реНрдкрд╖реНрдЯ рдХреЗрд▓реА рдЬрд╛рддреЗ рдХреА OpenCV рд╣реА рд╕рд░реНрд╡рд╛рдд рд▓реЛрдХрдкреНрд░рд┐рдп рд╕рдВрдЧрдгрдХ рджреГрд╖реНрдЯреА рд▓рд╛рдпрдмреНрд░рд░реА рдЖрд╣реЗ, рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрдзрд┐рдХ рд╡рд┐рдХрд╛рд╕рдХ рддреНрдпрд╛рд╕ рдкрд░рд┐рдЪрд┐рдд рдЖрд╣реЗрдд рдЖрдгрд┐ рдорд╛рдпрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░рд╡рд░ рдбреЗрд╕реНрдХрдЯреЙрдк-рд░реЗрдбреА рдХреЛрдб рдЪрд╛рд▓рд╡рд┐рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рд╕реБрд▓рдн рдХрд░рддреЗ. рдкрд░рдВрддреБ рдпрд╛ рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрджреНрдпрд╛рдк рд▓реЛрдХрдкреНрд░рд┐рдп рддрдпрд╛рд░ рдкрд╛рдХрдХреГрддреА рдХрд╛ рдирд╛рд╣реАрдд?
рд▓рд╣рд╛рди рд╢реЙрд▓рд╡рд░ OpenCV рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рд╕рдорд╕реНрдпрд╛ рджреЛрди рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЖрд╣реЗ:
- рдЬрд░ рддреБрдореНрд╣реА рд▓рд╛рдпрдмреНрд░рд░реА рдЕрдЧрджреА рдХрдореАрдд рдХрдореА рдореЙрдбреНрдпреВрд▓реНрд╕рдЪреНрдпрд╛ рд╕рдВрдЪрд╛рд╕рд╣ рд╕рдВрдХрд▓рд┐рдд рдХреЗрд▓реА, рддрд░ рддреА рдлрдХреНрдд рддреНрдпрд╛рдЪ STM32F7Discovery рдЪреНрдпрд╛ рдлреНрд▓реЕрд╢ рдореЗрдорд░реАрдордзреНрдпреЗ рдмрд╕рдгрд╛рд░ рдирд╛рд╣реА (рдЕрдЧрджреА OS рд╡рд┐рдЪрд╛рд░рд╛рдд рди рдШреЗрддрд╛) рдЦреВрдк рдореЛрдареНрдпрд╛ рдХреЛрдбрдореБрд│реЗ (рдЕрдиреЗрдХ рдореЗрдЧрд╛рдмрд╛рдЗрдЯреНрд╕ рд╕реВрдЪрдирд╛)
- рд▓рд╛рдпрдмреНрд░рд░реА рд╕реНрд╡рддрдГ C++ рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓реА рдЖрд╣реЗ, рдореНрд╣рдгрдЬреЗ
- рд╕рдХрд╛рд░рд╛рддреНрдордХ рд░рдирдЯрд╛рдЗрдорд╕рд╛рдареА рд╕рдорд░реНрдерди рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ (рдЕрдкрд╡рд╛рдж рдЗ.)
- LibC/Posix рд╕рд╛рдареА рдереЛрдбреЗ рд╕рдорд░реНрдерди, рдЬреЗ рд╕рд╣рд╕рд╛ рдПрдореНрдмреЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдорд╕рд╛рдареА OS рдордзреНрдпреЗ рдЖрдврд│рддреЗ - рддреБрдореНрд╣рд╛рд▓рд╛ рдПрдХ рдорд╛рдирдХ рдкреНрд▓рд╕ рд▓рд╛рдпрдмреНрд░рд░реА рдЖрдгрд┐ рдПрдХ рдорд╛рдирдХ STL рдЯреЗрдореНрдкрд▓реЗрдЯ рд▓рд╛рдпрдмреНрд░рд░реА (рд╡реЗрдХреНрдЯрд░, рдЗ.) рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
рдПрдореНрдмреЙрдХреНрд╕рд╡рд░ рдкреЛрд░реНрдЯ рдХрд░рдд рдЖрд╣реЗ
рдиреЗрд╣рдореАрдкреНрд░рдорд╛рдгреЗ, рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯреАрдорд╡рд░ рдХреЛрдгрддреЗрд╣реА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдкреЛрд░реНрдЯ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА, рд╡рд┐рдХрд╛рд╕рдХрд╛рдВрдиреА рдЬреНрдпрд╛ рдлреЙрд░реНрдордордзреНрдпреЗ рддреЗ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХреЗрд▓рд╛ рддреЛ рдПрдХ рдЪрд╛рдВрдЧрд▓реА рдХрд▓реНрдкрдирд╛ рдЖрд╣реЗ. рдЖрдордЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, рдпрд╛рдордзреНрдпреЗ рдХреЛрдгрддреАрд╣реА рд╕рдорд╕реНрдпрд╛ рдирд╛рд╣реА - рд╕реНрддреНрд░реЛрдд рдХреЛрдб рд╡рд░ рдЖрдврд│реВ рд╢рдХрддреЛ
рдЪрд╛рдВрдЧрд▓реА рдмрд╛рддрдореА рдЕрд╢реА рдЖрд╣реЗ рдХреА OpenCV рд╣реЗ рдмреЙрдХреНрд╕рдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░ рд╕реНрдерд┐рд░ рд▓рд╛рдпрдмреНрд░рд░реА рдореНрд╣рдгреВрди рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ, рдЬреЗ рдкреЛрд░реНрдЯрд┐рдВрдЧ рд╕реБрд▓рдн рдХрд░рддреЗ. рдЖрдореНрд╣реА рдорд╛рдирдХ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирд╕рд╣ рд▓рд╛рдпрдмреНрд░рд░реА рдЧреЛрд│рд╛ рдХрд░рддреЛ рдЖрдгрд┐ рддреЗ рдХрд┐рддреА рдЬрд╛рдЧрд╛ рдШреЗрддрд╛рдд рддреЗ рдкрд╛рд╣рддреЛ. рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбреНрдпреВрд▓ рд╡реЗрдЧрд│реНрдпрд╛ рд▓рд╛рдпрдмреНрд░рд░реАрдордзреНрдпреЗ рдЧреЛрд│рд╛ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ.
> size lib/*so --totals
text data bss dec hex filename
1945822 15431 960 1962213 1df0e5 lib/libopencv_calib3d.so
17081885 170312 25640 17277837 107a38d lib/libopencv_core.so
10928229 137640 20192 11086061 a928ed lib/libopencv_dnn.so
842311 25680 1968 869959 d4647 lib/libopencv_features2d.so
423660 8552 184 432396 6990c lib/libopencv_flann.so
8034733 54872 1416 8091021 7b758d lib/libopencv_gapi.so
90741 3452 304 94497 17121 lib/libopencv_highgui.so
6338414 53152 968 6392534 618ad6 lib/libopencv_imgcodecs.so
21323564 155912 652056 22131532 151b34c lib/libopencv_imgproc.so
724323 12176 376 736875 b3e6b lib/libopencv_ml.so
429036 6864 464 436364 6a88c lib/libopencv_objdetect.so
6866973 50176 1064 6918213 699045 lib/libopencv_photo.so
698531 13640 160 712331 ade8b lib/libopencv_stitching.so
466295 6688 168 473151 7383f lib/libopencv_video.so
315858 6972 11576 334406 51a46 lib/libopencv_videoio.so
76510375 721519 717496 77949390 4a569ce (TOTALS)
рддреБрдореНрд╣реА рд╢реЗрд╡рдЯрдЪреНрдпрд╛ рдУрд│реАрддреВрди рдмрдШреВ рд╢рдХрддрд╛, .bss рдЖрдгрд┐ .data рдЬрд╛рд╕реНрдд рдЬрд╛рдЧрд╛ рдШреЗрдд рдирд╛рд╣реАрдд, рдкрдг рдХреЛрдб 70 MiB рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдЖрд╣реЗ. рд╣реЗ рд╕реНрдкрд╖реНрдЯ рдЖрд╣реЗ рдХреА рд╣реЗ рдПрдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рд╢реА рд╕реНрдерд┐рд░рдкрдгреЗ рдЬреЛрдбрд▓реЗрд▓реЗ рдЕрд╕рд▓реНрдпрд╛рд╕, рдХреЛрдб рдХрдореА рд╣реЛрдИрд▓.
рдЪрд▓рд╛ рд╢рдХреНрдп рддрд┐рддрдХреНрдпрд╛ рдореЙрдбреНрдпреВрд▓реНрд╕ рдмрд╛рд╣реЗрд░ рдЯрд╛рдХрдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реВрдпрд╛ рдЬреЗрдгреЗрдХрд░реВрди рдПрдХ рдХрд┐рдорд╛рди рдЙрджрд╛рд╣рд░рдг рдПрдХрддреНрд░ рдХреЗрд▓реЗ рдЬрд╛рдИрд▓ (рдЬреЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдлрдХреНрдд OpenCV рдЖрд╡реГрддреНрддреА рдЖрдЙрдЯрдкреБрдЯ рдХрд░реЗрд▓), рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рдкрд╛рд╣реВ cmake .. -LA
рдЖрдгрд┐ рдкрд░реНрдпрд╛рдпрд╛рдВрдордзреНрдпреЗ рдмрдВрдж рд╣реЛрдгрд╛рд░реА рдкреНрд░рддреНрдпреЗрдХ рдЧреЛрд╖реНрдЯ рдмрдВрдж рдХрд░рд╛.
-DBUILD_opencv_java_bindings_generator=OFF
-DBUILD_opencv_stitching=OFF
-DWITH_PROTOBUF=OFF
-DWITH_PTHREADS_PF=OFF
-DWITH_QUIRC=OFF
-DWITH_TIFF=OFF
-DWITH_V4L=OFF
-DWITH_VTK=OFF
-DWITH_WEBP=OFF
<...>
> size lib/libopencv_core.a --totals
text data bss dec hex filename
3317069 36425 17987 3371481 3371d9 (TOTALS)
рдПрдХреАрдХрдбреЗ, рд╣реЗ рд▓рд╛рдпрдмреНрд░рд░реАрдЪреЗ рдлрдХреНрдд рдПрдХ рдореЙрдбреНрдпреВрд▓ рдЖрд╣реЗ, рджреБрд╕рд░реАрдХрдбреЗ, рд╣реЗ рдХреЛрдб рдЖрдХрд╛рд░рд╛рд╕рд╛рдареА рдХрдВрдкрд╛рдЗрд▓рд░ рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рдирд╢рд┐рд╡рд╛рдп рдЖрд╣реЗ (-Os
). рдХреЛрдбрдЪреЗ ~3 MiB рдЕрдЬреВрдирд╣реА рдмрд░реЗрдЪ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдЖрдзреАрдЪ рдпрд╢рд╛рдЪреА рдЖрд╢рд╛ рджреЗрддреЗ.
рдПрдореБрд▓реЗрдЯрд░рдордзреНрдпреЗ рдЪрд╛рд▓рд╡рд╛
рдПрдореБрд▓реЗрдЯрд░рд╡рд░ рдбреАрдмрдЧ рдХрд░рдгреЗ рдЦреВрдк рд╕реЛрдкреЗ рдЖрд╣реЗ, рдореНрд╣рдгреВрди рдкреНрд░рдердо рд▓рд╛рдпрдмреНрд░рд░реА qemu рд╡рд░ рдХрд╛рд░реНрдп рдХрд░рддреЗ рдпрд╛рдЪреА рдЦрд╛рддреНрд░реА рдХрд░рд╛. рдПрдХ рдЕрдиреБрдХрд░рдгреАрдп рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо рдореНрд╣рдгреВрди, рдореА рдЗрдВрдЯрд┐рдЧреНрд░реЗрдЯрд░ / CP рдирд┐рд╡рдбрд▓реЗ, рдХрд╛рд░рдг рдкреНрд░рдердо, рддреЗ рдПрдЖрд░рдПрдо рджреЗрдЦреАрд▓ рдЖрд╣реЗ рдЖрдгрд┐ рджреБрд╕рд░реЗ рдореНрд╣рдгрдЬреЗ, рдПрдореНрдмреЙрдХреНрд╕ рдпрд╛ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╕рд╛рдареА рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдЖрдЙрдЯрдкреБрдЯрд▓рд╛ рд╕рдорд░реНрдерди рджреЗрддреЗ.
рдПрдореНрдмреЙрдХреНрд╕рдордзреНрдпреЗ рдмрд╛рд╣реНрдп рд▓рд╛рдпрдмреНрд░рд░реА рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рдпрдВрддреНрд░рдгрд╛ рдЖрд╣реЗ, рддреНрдпрд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рдЖрдореНрд╣реА рдУрдкрдирд╕реАрд╡реНрд╣реА рдореЙрдбреНрдпреВрд▓ рдореНрд╣рдгреВрди рдЬреЛрдбрддреЛ (рд╕реНрдерд┐рд░ рд▓рд╛рдпрдмреНрд░рд░реАрдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд "рдХрд┐рдорд╛рди" рдмрд┐рд▓реНрдбрд╕рд╛рдареА рд╕рд░реНрд╡ рд╕рдорд╛рди рдкрд░реНрдпрд╛рдп рдкрд╛рд╕ рдХрд░рддреЛ), рддреНрдпрд╛рдирдВрддрд░ рдореА рдПрдХ рд╕рд╛рдзрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЬреЛрдбрддреЛ рдЬреЛ рдпрд╛рд╕рд╛рд░рдЦрд╛ рджрд┐рд╕рддреЛ:
version.cpp:
#include <stdio.h>
#include <opencv2/core/utility.hpp>
int main() {
printf("OpenCV: %s", cv::getBuildInformation().c_str());
return 0;
}
рдЖрдореНрд╣реА рд╕рд┐рд╕реНрдЯрдо рдПрдХрддреНрд░ рдХрд░рддреЛ, рдЪрд╛рд▓рд╡рддреЛ - рдЖрдореНрд╣рд╛рд▓рд╛ рдЕрдкреЗрдХреНрд╖рд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдорд┐рд│рддреЗ.
root@embox:/#opencv_version
OpenCV:
General configuration for OpenCV 4.0.1 =====================================
Version control: bd6927bdf-dirty
Platform:
Timestamp: 2019-06-21T10:02:18Z
Host: Linux 5.1.7-arch1-1-ARCH x86_64
Target: Generic arm-unknown-none
CMake: 3.14.5
CMake generator: Unix Makefiles
CMake build tool: /usr/bin/make
Configuration: Debug
CPU/HW features:
Baseline:
requested: DETECT
disabled: VFPV3 NEON
C/C++:
Built as dynamic libs?: NO
< ╨Ф╨░╨╗╤М╤И╨╡ ╨╕╨┤╤Г╤В ╨┐╤А╨╛╤З╨╕╨╡ ╨┐╨░╤А╨░╨╝╨╡╤В╤А╤Л ╤Б╨▒╨╛╤А╨║╨╕ -- ╤Б ╨║╨░╨║╨╕╨╝╨╕ ╤Д╨╗╨░╨│╨░╨╝╨╕ ╨║╨╛╨╝╨┐╨╕╨╗╨╕╤А╨╛╨▓╨░╨╗╨╛╤Б╤М,
╨║╨░╨║╨╕╨╡ ╨╝╨╛╨┤╤Г╨╗╨╕ OpenCV ╨▓╨║╨╗╤О╤З╨╡╨╜╤Л ╨▓ ╤Б╨▒╨╛╤А╨║╤Г ╨╕ ╤В.╨┐.>
рдкреБрдвреАрд▓ рдкрд╛рдпрд░реА рдореНрд╣рдгрдЬреЗ рдХрд╛рд╣реА рдЙрджрд╛рд╣рд░рдг рдЪрд╛рд▓рд╡рдгреЗ, рд╢рдХреНрдпрддреЛ рдбреЗрд╡реНрд╣рд▓рдкрд░рдиреЗ рд╕реНрд╡рддрдГ рдСрдлрд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рдорд╛рдирдХрд╛рдВрдкреИрдХреА рдПрдХ.
рдкрд░рд┐рдгрд╛рдорд╛рд╕рд╣ рдкреНрд░рддрд┐рдорд╛ рдереЗрдЯ рдлреНрд░реЗрдо рдмрдлрд░рдордзреНрдпреЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЙрджрд╛рд╣рд░рдг рдереЛрдбреЗрд╕реЗ рдкреБрдиреНрд╣рд╛ рд▓рд┐рд╣рд╛рд╡реЗ рд▓рд╛рдЧрд▓реЗ. рдорд▓рд╛ рд╣реЗ рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧрд▓реЗ, рдХрд╛рд░рдг. рдХрд╛рд░реНрдп imshow()
QT, GTK рдЖрдгрд┐ Windows рдЗрдВрдЯрд░рдлреЗрд╕рджреНрд╡рд╛рд░реЗ рдкреНрд░рддрд┐рдорд╛ рдХрд╛рдвреВ рд╢рдХрддрд╛рдд, рдЬреЗ рдирд┐рд╢реНрдЪрд┐рддрдкрдгреЗ STM32 рдЪреНрдпрд╛ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдордзреНрдпреЗ рдирд╕рддреАрд▓. рдЦрд░рдВ рддрд░, QT STM32F7Discovery рд╡рд░ рджреЗрдЦреАрд▓ рдЪрд╛рд▓рд╡рд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ, рдкрд░рдВрддреБ рдпрд╛рдмрджреНрджрд▓ рджреБрд╕рд░реНрдпрд╛ рд▓реЗрдЦрд╛рдд рдЪрд░реНрдЪрд╛ рдХреЗрд▓реА рдЬрд╛рдИрд▓ ЁЯЩВ
рдПрдЬ рдбрд┐рдЯреЗрдХреНрдЯрд░рдЪрд╛ рдирд┐рдХрд╛рд▓ рдХреЛрдгрддреНрдпрд╛ рдлреЙрд░рдореЕрдЯрдордзреНрдпреЗ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ рд╣реЗ рдереЛрдбреНрдпрд╛ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдгрд╛рдирдВрддрд░, рдЖрдореНрд╣рд╛рд▓рд╛ рдПрдХ рдкреНрд░рддрд┐рдорд╛ рдорд┐рд│рддреЗ.
рдореВрд│ рдЪрд┐рддреНрд░
рдкрд░рд┐рдгрд╛рдо
STM32F7Discovery рд╡рд░ рдЪрд╛рд▓рдд рдЖрд╣реЗ
32F746GDISCOVERY рд╡рд░ рдЕрдиреЗрдХ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рдореЗрдорд░реА рд╡рд┐рднрд╛рдЧ рдЖрд╣реЗрдд рдЬреЗ рдЖрдкрдг рдПрдХрд╛ рдорд╛рд░реНрдЧрд╛рдиреЗ рд╡рд╛рдкрд░реВ рд╢рдХрддреЛ
- 320KiB рд░реЕрдо
- рдкреНрд░рддрд┐рдореЗрд╕рд╛рдареА 1MiB рдлреНрд▓реЕрд╢
- 8MiB SDRAM
- 16MiB QSPI NAND рдлреНрд▓реЕрд╢
- microSD рдХрд╛рд░реНрдб рд╕реНрд▓реЙрдЯ
рдкреНрд░рддрд┐рдорд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА SD рдХрд╛рд░реНрдб рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ, рдкрд░рдВрддреБ рдХрд┐рдорд╛рди рдЙрджрд╛рд╣рд░рдг рдЪрд╛рд▓рд╡рдгреНрдпрд╛рдЪреНрдпрд╛ рд╕рдВрджрд░реНрднрд╛рдд, рд╣реЗ рдлрд╛рд░рд╕реЗ рдЙрдкрдпреБрдХреНрдд рдирд╛рд╣реА.
рдбрд┐рд╕реНрдкреНрд▓реЗрдЪреЗ рд░рд┐рдЭреЛрд▓реНрдпреВрд╢рди 480├Ч272 рдЖрд╣реЗ, рдпрд╛рдЪрд╛ рдЕрд░реНрде рдлреНрд░реЗрдордмрдлрд░ рдореЗрдорд░реА 522 рдмрд┐рдЯреНрд╕рдЪреНрдпрд╛ рдЦреЛрд▓реАрд╡рд░ 240 рдмрд╛рдЗрдЯреНрд╕ рдЕрд╕реЗрд▓, рдореНрд╣рдгрдЬреЗ. рд╣реЗ RAM рдЪреНрдпрд╛ рдЖрдХрд╛рд░рд╛рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдЖрд╣реЗ, рдореНрд╣рдгреВрди рдлреНрд░реЗрдордмрдлрд░ рдЖрдгрд┐ рдвреАрдЧ (рдЬреЗ OpenCV рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдЕрд╕реЗрд▓, рдкреНрд░рддрд┐рдорд╛ рдЖрдгрд┐ рд╕рд╣рд╛рдпреНрдпрдХ рд╕рдВрд░рдЪрдирд╛рдВрд╕рд╛рдареА рдбреЗрдЯрд╛ рд╕рдВрдЪрдпрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА) SDRAM рдордзреНрдпреЗ рд╕реНрдерд┐рдд рдЕрд╕реЗрд▓, рдмрд╛рдХреА рд╕рд░реНрд╡ рдХрд╛рд╣реА (рд╕реНрдЯреЕрдХ рдЖрдгрд┐ рдЗрддрд░ рд╕рд┐рд╕реНрдЯрдо рдЧрд░рдЬрд╛рдВрд╕рд╛рдареА рдореЗрдорд░реА) ) RAM рд╡рд░ рдЬрд╛рдИрд▓.
рдЬрд░ рдЖрдореНрд╣реА STM32F7Discovery рд╕рд╛рдареА рдХрд┐рдорд╛рди рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдШреЗрддрд▓реЗ (рд╕рдВрдкреВрд░реНрдг рдиреЗрдЯрд╡рд░реНрдХ, рд╕рд░реНрд╡ рдЖрджреЗрд╢ рдлреЗрдХреВрди рджреНрдпрд╛, рд╕реНрдЯреЕрдХ рд╢рдХреНрдп рддрд┐рддрдХреНрдпрд╛ рд▓рд╣рд╛рди рдХрд░рд╛ рдЗ.) рдЖрдгрд┐ рддреЗрдереЗ рдЙрджрд╛рд╣рд░рдгрд╛рдВрд╕рд╣ OpenCV рдЬреЛрдбрд▓реНрдпрд╛рд╕, рдЖрд╡рд╢реНрдпрдХ рдореЗрдорд░реА рдЦрд╛рд▓реАрд▓рдкреНрд░рдорд╛рдгреЗ рдЕрд╕реЗрд▓:
text data bss dec hex filename
2876890 459208 312736 3648834 37ad42 build/base/bin/embox
рдХреЛрдгрддреЗ рд╡рд┐рднрд╛рдЧ рдХреБрдареЗ рдЬрд╛рддрд╛рдд рдпрд╛рдмрджреНрджрд▓ рдлрд╛рд░рд╢реА рдкрд░рд┐рдЪрд┐рдд рдирд╕рд▓реЗрд▓реНрдпрд╛рдВрд╕рд╛рдареА, рдореА рд╕реНрдкрд╖реНрдЯ рдХрд░реЗрди: рдордзреНрдпреЗ .text
╨╕ .rodata
рд╕реВрдЪрдирд╛ рдЖрдгрд┐ рд╕реНрдерд┐рд░рд╛рдВрдХ (рдЕрдВрджрд╛рдЬреЗ рдмреЛрд▓рдгреЗ, рдлрдХреНрдд рд╡рд╛рдЪрдиреАрдп рдбреЗрдЯрд╛) рдордзреНрдпреЗ рдЖрд╣реЗрдд .data
рдбреЗрдЯрд╛ рдмрджрд▓рдгреНрдпрд╛рдпреЛрдЧреНрдп рдЖрд╣реЗ, .bss
рддреЗрдереЗ "рдиреНрдпреБрд▓" рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рдЖрд╣реЗрдд, рдЬреНрдпрд╛рдВрдирд╛ рдЬрд╛рдЧрд╛ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ (рд╣рд╛ рд╡рд┐рднрд╛рдЧ RAM рд╡рд░ "рдЬрд╛рдИрд▓").
рдЪрд╛рдВрдЧрд▓реА рдмрд╛рддрдореА рдЕрд╢реА рдЖрд╣реЗ .data
/.bss
рдлрд┐рдЯ рдкрд╛рд╣рд┐рдЬреЗ, рдкрдг рд╕рд╣ .text
рд╕рдорд╕реНрдпрд╛ рдЕрд╢реА рдЖрд╣реЗ рдХреА рдкреНрд░рддрд┐рдореЗрд╕рд╛рдареА рдлрдХреНрдд 1MiB рдореЗрдорд░реА рдЖрд╣реЗ. рдмрд╛рд╣реЗрд░ рдлреЗрдХрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ .text
рдЙрджрд╛рд╣рд░рдгрд╛рд╡рд░реВрди рдЪрд┐рддреНрд░ рдШреНрдпрд╛ рдЖрдгрд┐ рддреЗ рд╡рд╛рдЪрд╛, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╕реНрдЯрд╛рд░реНрдЯрдЕрдкрдЪреНрдпрд╛ рд╡реЗрд│реА SD рдХрд╛рд░реНрдбрд╡рд░реВрди рдореЗрдорд░реАрдордзреНрдпреЗ, рдкрд░рдВрддреБ fruits.png рдЪреЗ рд╡рдЬрди рд╕реБрдорд╛рд░реЗ 330KiB рдЖрд╣реЗ, рддреНрдпрд╛рдореБрд│реЗ рдпрд╛ рд╕рдорд╕реНрдпреЗрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА: рдмрд╣реБрддреЗрдХ .text
OpenCV рдХреЛрдбрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЖрд╣реЗ.
рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд, рдлрдХреНрдд рдПрдХрдЪ рдЧреЛрд╖реНрдЯ рдЙрд░рд▓реА рдЖрд╣реЗ - рдХреЛрдбрдЪрд╛ рдПрдХ рднрд╛рдЧ QSPI рдлреНрд▓реЕрд╢рд╡рд░ рд▓реЛрдб рдХрд░рдгреЗ (рддреНрдпрд╛рдордзреНрдпреЗ рд╕рд┐рд╕реНрдЯрдо рдмрд╕рдордзреНрдпреЗ рдореЗрдорд░реА рдореЕрдк рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдСрдкрд░реЗрд╢рдирдЪрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдореЛрдб рдЖрд╣реЗ, рдЬреЗрдгреЗрдХрд░реВрди рдкреНрд░реЛрд╕реЗрд╕рд░ рдереЗрдЯ рдпрд╛ рдбреЗрдЯрд╛рдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░реВ рд╢рдХреЗрд▓). рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдПрдХ рд╕рдорд╕реНрдпрд╛ рдЙрджреНрднрд╡рддреЗ: рдкреНрд░рдердо, рдбрд┐рд╡реНрд╣рд╛рдЗрд╕ рд░реАрдмреВрдЯ рдЭрд╛рд▓реНрдпрд╛рдирдВрддрд░ рд▓рдЧреЗрдЪрдЪ QSPI рдлреНрд▓реЕрд╢ рдбреНрд░рд╛рдЗрд╡реНрд╣рдЪреА рдореЗрдорд░реА рдЙрдкрд▓рдмреНрдз рдирд╕рддреЗ (рддреБрдореНрд╣рд╛рд▓рд╛ рд╕реНрд╡рддрдВрддреНрд░рдкрдгреЗ рдореЗрдорд░реА-рдореЕрдк рдХреЗрд▓реЗрд▓рд╛ рдореЛрдб рдкреНрд░рд╛рд░рдВрдн рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ), рдЖрдгрд┐ рджреБрд╕рд░реЗ рдореНрд╣рдгрдЬреЗ, рддреБрдореНрд╣реА рд╣реА рдореЗрдорд░реА "рдлреНрд▓реЕрд╢" рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА. рдПрдХ рдкрд░рд┐рдЪрд┐рдд рдмреВрдЯрд▓реЛрдбрд░.
рдкрд░рд┐рдгрд╛рдореА, QSPI рдордзреАрд▓ рд╕рд░реНрд╡ рдХреЛрдб рд▓рд┐рдВрдХ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрдгреНрдпрд╛рдд рдЖрд▓рд╛ рдЖрдгрд┐ рддреЛ рд╕реНрд╡-рд▓рд┐рдЦрд┐рдд рд▓реЛрдбрд░рд╕рд╣ рдлреНрд▓реЕрд╢ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрдгреНрдпрд╛рдд рдЖрд▓рд╛ рдЬреЛ TFTP рджреНрд╡рд╛рд░реЗ рдЖрд╡рд╢реНрдпрдХ рдмрд╛рдпрдирд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрд▓.
рдкрд░рд┐рдгрд╛рдо
рд╣реА рд▓рд╛рдпрдмреНрд░рд░реА рдПрдореНрдмреЙрдХреНрд╕рдордзреНрдпреЗ рдкреЛрд░реНрдЯ рдХрд░рдгреНрдпрд╛рдЪреА рдХрд▓реНрдкрдирд╛ рд╕реБрдорд╛рд░реЗ рдПрдХ рд╡рд░реНрд╖рд╛рдкреВрд░реНрд╡реА рдЖрд▓реА рд╣реЛрддреА, рдкрд░рдВрддреБ рд╡рд┐рд╡рд┐рдз рдХрд╛рд░рдгрд╛рдВрдореБрд│реЗ рддреА рд╡рд╛рд░рдВрд╡рд╛рд░ рдкреБрдвреЗ рдврдХрд▓рдгреНрдпрд╛рдд рдЖрд▓реА. рддреНрдпрд╛рдкреИрдХреА рдПрдХ libstdc++ рдЖрдгрд┐ рдорд╛рдирдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рд▓рд╛рдпрдмреНрд░рд░реАрд╕рд╛рдареА рд╕рдорд░реНрдерди рдЖрд╣реЗ. Embox рдордзреАрд▓ C++ рд╕рдорд░реНрдердирд╛рдЪреА рд╕рдорд╕реНрдпрд╛ рдпрд╛ рд▓реЗрдЦрд╛рдЪреНрдпрд╛ рд╡реНрдпрд╛рдкреНрддреАрдЪреНрдпрд╛ рдкрд▓реАрдХрдбреЗ рдЖрд╣реЗ, рдореНрд╣рдгреВрди рдореА рдлрдХреНрдд рдПрд╡рдвреЗрдЪ рд╕рд╛рдВрдЧреЗрди рдХреА рдпрд╛ рд▓рд╛рдпрдмреНрд░рд░реАрд▓рд╛ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдореНрд╣реА рдпреЛрдЧреНрдп рдкреНрд░рдорд╛рдгрд╛рдд рд╣реЗ рд╕рдорд░реНрдерди рдкреНрд░рд╛рдкреНрдд рдХрд░рдгреНрдпрд╛рдд рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ ЁЯЩВ
рд╕рд░рддреЗрд╢реЗрд╡рдЯреА, рдпрд╛ рд╕рдорд╕реНрдпрд╛рдВрд╡рд░ рдорд╛рдд рдХреЗрд▓реА рдЧреЗрд▓реА (рдХрд┐рдорд╛рди OpenCV рдЙрджрд╛рд╣рд░рдгрд╛рд╕рд╛рдареА рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдкреБрд░реЗрд╕реЗ рдЖрд╣реЗ), рдЖрдгрд┐ рдЙрджрд╛рд╣рд░рдг рдЪрд╛рд▓реВ рдЭрд╛рд▓реЗ. рдХреЕрдиреА рдлрд┐рд▓реНрдЯрд░ рд╡рд╛рдкрд░реВрди рд╕реАрдорд╛ рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА рдмреЛрд░реНрдбрд▓рд╛ 40 рд▓рд╛рдВрдм рд╕реЗрдХрдВрдж рд▓рд╛рдЧрддрд╛рдд. рд╣реЗ рдЕрд░реНрдерд╛рддрдЪ рдЦреВрдк рд▓рд╛рдВрдм рдЖрд╣реЗ (рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рд▓рд╛ рдХрд╕реЗ рдЕрдиреБрдХреВрд▓ рдХрд░рд╛рдпрдЪреЗ рдпрд╛рд╡рд░ рд╡рд┐рдЪрд╛рд░ рдЖрд╣реЗрдд, рдпрд╢ рдорд┐рд│рд╛рд▓реНрдпрд╛рд╕ рдпрд╛рдмрджреНрджрд▓ рд╕реНрд╡рддрдВрддреНрд░ рд▓реЗрдЦ рд▓рд┐рд╣рд┐рдгреЗ рд╢рдХреНрдп рд╣реЛрдИрд▓).
рддрдерд╛рдкрд┐, рдордзреНрдпрд╡рд░реНрддреА рдЙрджреНрджрд┐рд╖реНрдЯ рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рддрдпрд╛рд░ рдХрд░рдгреЗ рд╣реЗ рд╣реЛрддреЗ рдЬреЗ рдЕрдиреБрдХреНрд░рдореЗ STM32 рд╡рд░ OpenCV рдЪрд╛рд▓рд╡рдгреНрдпрд╛рдЪреА рдореВрд▓рднреВрдд рд╢рдХреНрдпрддрд╛ рджрд░реНрд╢рд╡реЗрд▓, рд╣реЗ рд▓рдХреНрд╖реНрдп рд╕рд╛рдзреНрдп рдЭрд╛рд▓реЗ, рд╣реБрд░реНрд░реЗ!
tl;dr: рдЪрд░рдг-рджрд░-рдЪрд░рдг рд╕реВрдЪрдирд╛
0: рдПрдореНрдмреЙрдХреНрд╕ рд╕реНрд░реЛрдд рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рд╛, рдЬрд╕реЗ рдХреА:
git clone https://github.com/embox/embox && cd ./embox
1: рдЪрд▓рд╛ рдПрдХ рдмреВрдЯрд▓реЛрдбрд░ рдПрдХрддреНрд░ рдХрд░реВрди рд╕реБрд░реБрд╡рд╛рдд рдХрд░реВрдпрд╛ рдЬреЛ QSPI рдлреНрд▓реЕрд╢ рдбреНрд░рд╛рдЗрд╡реНрд╣рд▓рд╛ "рдлреНрд▓реЕрд╢" рдХрд░реЗрд▓.
make confload-arm/stm32f7cube
рдЖрддрд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдХрд╛рд░рдг. рдЖрдореНрд╣реА TFTP рджреНрд╡рд╛рд░реЗ рдкреНрд░рддрд┐рдорд╛ рдЕрдкрд▓реЛрдб рдХрд░реВ. рдмреЛрд░реНрдб рдЖрдгрд┐ рд╣реЛрд╕реНрдЯ IP рдкрддреНрддреЗ рд╕реЗрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣рд╛рд▓рд╛ conf/rootfs/network рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдЙрджрд╛рд╣рд░рдг:
iface eth0 inet static
address 192.168.2.2
netmask 255.255.255.0
gateway 192.168.2.1
hwaddress aa:bb:cc:dd:ee:02
gateway
- рд╣реЛрд╕реНрдЯ рдкрддреНрддрд╛ рдЬрд┐рдереВрди рдкреНрд░рддрд┐рдорд╛ рд▓реЛрдб рдХреЗрд▓реА рдЬрд╛рдИрд▓, address
- рдмреЛрд░реНрдбрдЪрд╛ рдкрддреНрддрд╛.
рддреНрдпрд╛рдирдВрддрд░, рдЖрдореНрд╣реА рдмреВрдЯрд▓реЛрдбрд░ рдЧреЛрд│рд╛ рдХрд░рддреЛ:
make
2: рдмреЛрд░реНрдбрд╡рд░ рдмреВрдЯрд▓реЛрдбрд░рдЪреЗ рдиреЗрд╣рдореАрдЪреЗ рд▓реЛрдбрд┐рдВрдЧ (рд╢реНрд▓реЗрд╖рд╛рд╕рд╛рдареА рдХреНрд╖рдорд╕реНрд╡) - рдпреЗрдереЗ рдХрд╛рд╣реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╛рд╣реА, рддреБрдореНрд╣рд╛рд▓рд╛ рддреЗ STM32F7Discovery рд╕рд╛рдареА рдЗрддрд░ рдХреЛрдгрддреНрдпрд╛рд╣реА рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдкреНрд░рдорд╛рдгреЗ рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓. рддреБрдореНрд╣рд╛рд▓рд╛ рддреЗ рдХрд╕реЗ рдХрд░рд╛рдпрдЪреЗ рд╣реЗ рдорд╛рд╣рд┐рдд рдирд╕рд▓реНрдпрд╛рд╕, рддреБрдореНрд╣реА рддреНрдпрд╛рдмрджреНрджрд▓ рд╡рд╛рдЪреВ рд╢рдХрддрд╛
3: OpenCV рд╕рд╛рдареА рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирд╕рд╣ рдкреНрд░рддрд┐рдорд╛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдгреЗ.
make confload-platform/opencv/stm32f7discovery
make
4: QSPI рд╡рд░ qspi.bin рд╡рд░ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рд╕рд╛рдареА ELF рд╡рд┐рднрд╛рдЧрд╛рдВрдордзреВрди рдЕрд░реНрдХ
arm-none-eabi-objcopy -O binary build/base/bin/embox build/base/bin/qspi.bin
--only-section=.text --only-section=.rodata
--only-section='.ARM.ex*'
--only-section=.data
conf рдбрд┐рд░реЗрдХреНрдЯрд░реАрдордзреНрдпреЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрд╣реЗ рдЬреА рд╣реЗ рдХрд░рддреЗ, рддреНрдпрд╛рдореБрд│реЗ рддреБрдореНрд╣реА рддреА рдЪрд╛рд▓рд╡реВ рд╢рдХрддрд╛
./conf/qspi_objcopy.sh # ╨Э╤Г╨╢╨╜╤Л╨╣ ╨▒╨╕╨╜╨░╤А╨╜╨╕╨║ -- build/base/bin/qspi.bin
5: tftp рд╡рд╛рдкрд░реВрди, QSPI рдлреНрд▓реЕрд╢ рдбреНрд░рд╛рдЗрд╡реНрд╣рд╡рд░ qspi.bin.bin рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рд╛. рд╣реЛрд╕реНрдЯрд╡рд░, рд╣реЗ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, tftp рд╕рд░реНрд╡реНрд╣рд░рдЪреНрдпрд╛ рд░реВрдЯ рдлреЛрд▓реНрдбрд░рдордзреНрдпреЗ qspi.bin рдХреЙрдкреА рдХрд░рд╛ (рд╕рд╛рдорд╛рдиреНрдпрдд: /srv/tftp/ рдХрд┐рдВрд╡рд╛ /var/lib/tftpboot/; рд╕рдВрдмрдВрдзрд┐рдд рд╕рд░реНрд╡реНрд╣рд░рд╕рд╛рдареА рдкреЕрдХреЗрдЬ рдмрд╣реБрддреЗрдХ рд▓реЛрдХрдкреНрд░рд┐рдп рд╡рд┐рддрд░рдгрд╛рдВрдордзреНрдпреЗ рдЙрдкрд▓рдмреНрдз рдЕрд╕рддрд╛рдд, рд╕рд╛рдорд╛рдиреНрдпрддрдГ tftpd рдХрд┐рдВрд╡рд╛ tftp-hpa, рдХрд╛рд╣реАрд╡реЗрд│рд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧреЗрд▓ systemctl start tftpd.service
рд╕реБрд░реВ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА).
# ╨▓╨░╤А╨╕╨░╨╜╤В ╨┤╨╗╤П tftpd
sudo cp build/base/bin/qspi.bin /srv/tftp
# ╨▓╨░╤А╨╕╨░╨╜╤В ╨┤╨╗╤П tftp-hpa
sudo cp build/base/bin/qspi.bin /var/lib/tftpboot
рдПрдореНрдмреЙрдХреНрд╕рд╡рд░ (рдореНрд╣рдгрдЬреЗ рдмреВрдЯрд▓реЛрдбрд░рдордзреНрдпреЗ), рддреБрдореНрд╣рд╛рд▓рд╛ рдЦрд╛рд▓реАрд▓ рдХрдорд╛рдВрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ (рдЖрдореНрд╣реА рдЕрд╕реЗ рдЧреГрд╣реАрдд рдзрд░рддреЛ рдХреА рд╕рд░реНрд╡реНрд╣рд░рдЪрд╛ рдкрддреНрддрд╛ 192.168.2.1 рдЖрд╣реЗ):
embox> qspi_loader qspi.bin 192.168.2.1
6: рдЖрджреЗрд╢рд╛рд╕рд╣ goto
рддреБрдореНрд╣рд╛рд▓рд╛ QSPI рдореЗрдорд░реАрдордзреНрдпреЗ "рдЙрдбреА рдорд╛рд░рдгреЗ" рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдкреНрд░рддрд┐рдорд╛ рдХрд╢реА рд▓рд┐рдВрдХ рдХреЗрд▓реА рдЖрд╣реЗ рддреНрдпрд╛рдиреБрд╕рд╛рд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдерд╛рди рдмрджрд▓реВ рд╢рдХрддреЗ, рддреБрдореНрд╣реА рдХрдорд╛рдВрдбрд╕рд╣ рд╣рд╛ рдкрддреНрддрд╛ рдкрд╛рд╣реВ рд╢рдХрддрд╛ mem 0x90000000
(рдкреНрд░рд╛рд░рдВрднрд╛рдЪрд╛ рдкрддреНрддрд╛ рдкреНрд░рддрд┐рдореЗрдЪреНрдпрд╛ рджреБрд╕рд▒реНрдпрд╛ рейреи-рдмрд┐рдЯ рд╢рдмреНрджрд╛рдд рдмрд╕рддреЛ); рддреБрдореНрд╣рд╛рд▓рд╛ рд╕реНрдЯреЕрдХ рдзреНрд╡рдЬрд╛рдВрдХрд┐рдд рдХрд░рдгреЗ рджреЗрдЦреАрд▓ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ -s
, рд╕реНрдЯреЕрдХ рдкрддреНрддрд╛ 0x90000000 рд╡рд░ рдЖрд╣реЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде:
embox>mem 0x90000000
0x90000000: 0x20023200 0x9000c27f 0x9000c275 0x9000c275
тЖС тЖС
╤Н╤В╨╛ ╨░╨┤╤А╨╡╤Б ╤Н╤В╨╛ ╨░╨┤╤А╨╡╤Б
╤Б╤В╤Н╨║╨░ ╨┐╨╡╤А╨▓╨╛╨╣
╨╕╨╜╤Б╤В╤А╤Г╨║╤Ж╨╕╨╕
embox>goto -i 0x9000c27f -s 0x20023200 # ╨д╨╗╨░╨│ -i ╨╜╤Г╨╢╨╡╨╜ ╤З╤В╨╛╨▒╤Л ╨╖╨░╨┐╤А╨╡╤В╨╕╤В╤М ╨┐╤А╨╡╤А╤Л╨▓╨░╨╜╨╕╤П ╨▓╨╛ ╨▓╤А╨╡╨╝╤П ╨╕╨╜╨╕╤Ж╨╕╨░╨╗╨╕╨╖╨░╤Ж╨╕╨╕ ╤Б╨╕╤Б╤В╨╡╨╝╤Л
< ╨Э╨░╤З╨╕╨╜╨░╤П ╨╛╤В╤Б╤О╨┤╨░ ╨▒╤Г╨┤╨╡╤В ╨▓╤Л╨▓╨╛╨┤ ╨╜╨╡ ╨╖╨░╨│╤А╤Г╨╖╤З╨╕╨║╨░, ╨░ ╨╛╨▒╤А╨░╨╖╨░ ╤Б OpenCV >
7: рд▓рд╛рдБрдЪ
embox> edges 20
рдЖрдгрд┐ 40-рд╕реЗрдХрдВрдж рд╕реАрдорд╛ рд╢реЛрдзрд╛рдЪрд╛ рдЖрдирдВрдж рдШреНрдпрд╛ ЁЯЩВ
рдХрд╛рд╣реАрддрд░реА рдЪреВрдХ рдЭрд╛рд▓реНрдпрд╛рд╕ - рдордзреНрдпреЗ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд▓рд┐рд╣рд╛
рд╕реНрддреНрд░реЛрдд: www.habr.com