STM32F7-рдбрд┐рд╕реНрдХрд╡рд░реА рдкрд░ OpenCV

рдореИрдВ Embox рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реВрдВ , рдФрд░ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдореИрдВ рдХреИрд╕реЗ STM32746G рдмреЛрд░реНрдб рдкрд░ OpenCV рдЪрд▓рд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛ред


рдпрджрд┐ рдЖрдк "STM32 рдмреЛрд░реНрдб рдкрд░ OpenCV" рдЬреИрд╕реЗ рдХрд┐рд╕реА рдЦреЛрдЬ рдЗрдВрдЬрди рдореЗрдВ рдбреНрд░рд╛рдЗрд╡ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХрд╛рдлреА рдХреБрдЫ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ STM32 рдмреЛрд░реНрдб рдпрд╛ рдЕрдиреНрдп рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдкрд░ рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред
рдХрдИ рд╡реАрдбрд┐рдпреЛ рд╣реИрдВ рдЬреЛ рдирд╛рдо рд╕реЗ рджреЗрдЦрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдорддреМрд░ рдкрд░ (рдПрд╕рдЯреАрдПрдо 32 рдмреЛрд░реНрдб рдкрд░ рд╕рднреА рд╡реАрдбрд┐рдпреЛ рдЬреЛ рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдерд╛), рдХреЗрд╡рд▓ рдЫрд╡рд┐ рдХреИрдорд░реЗ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХреА рдЧрдИ рдереА рдФрд░ рдкрд░рд┐рдгрд╛рдо рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЫрд╡рд┐ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдпрд╛ рддреЛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдПрдХ рдирд┐рдпрдорд┐рдд рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░, рдпрд╛ рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдмреЛрд░реНрдбреЛрдВ рдкрд░ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ)ред


рдХреНрдпреЛрдВ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ?


рдЦреЛрдЬ рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдХреЛ рдЗрд╕ рддрдереНрдп рд╕реЗ рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ OpenCV рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рдХрдВрдкреНрдпреВрдЯрд░ рд╡рд┐рдЬрд╝рди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЕрдзрд┐рдХ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЗрд╕рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рдФрд░ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдкрд░ рдбреЗрд╕реНрдХрдЯреЙрдк рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХреЛрдб рдЪрд▓рд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╡рд┐рдХрд╛рд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдмрд╣реБрдд рд╕рд░рд▓ рдмрдирд╛рддреА рд╣реИред рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рдХреЛрдИ рд▓реЛрдХрдкреНрд░рд┐рдп рддреИрдпрд╛рд░ рд╡реНрдпрдВрдЬрди рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реИрдВ?


рдЫреЛрдЯреЗ рдмреЛрд░реНрдбреЛрдВ рдкрд░ OpenCV рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рд╕рдорд╕реНрдпрд╛ рджреЛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рд╕реЗ рдЬреБрдбрд╝реА рд╣реИ:


  • рдпрджрд┐ рдЖрдк рдореЙрдбреНрдпреВрд▓ рдХреЗ рдиреНрдпреВрдирддрдо рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдмрд╣реБрдд рдмрдбрд╝реА рдХреЛрдб (рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдХрдИ рдореЗрдЧрд╛рдмрд╛рдЗрдЯ) рдХреЗ рдХрд╛рд░рдг рд╕рдорд╛рди рдПрд╕рдЯреАрдПрдо 32 рдПрдл 7 рдбрд┐рд╕реНрдХреЛрд╡рд░реА (рдУрдПрд╕ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреЗ рдмрд┐рдирд╛) рдХреА рдлреНрд▓реИрд╢ рдореЗрдореЛрд░реА рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
  • рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реНрд╡рдпрдВ C ++ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ
    • рд╕рдХрд╛рд░рд╛рддреНрдордХ рд░рдирдЯрд╛рдЗрдо (рдЕрдкрд╡рд╛рдж, рдЖрджрд┐) рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
    • LibC / Posix рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдо рд╕рдорд░реНрдерди рд╣реИ, рдЬреЛ рдЖрдорддреМрд░ рдкрд░ рдПрдореНрдмреЗрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП OS рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЖрдкрдХреЛ рдкреНрд▓рд╕рд╕ рдХреА рдПрдХ рдорд╛рдирдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдФрд░ STL рдЯреЗрдореНрдкреНрд▓реЗрдЯ (рд╡реЗрдХреНрдЯрд░, рдЖрджрд┐) рдХреЗ рдПрдХ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ

Embox рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИ


рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, рдХрд┐рд╕реА рднреА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЙрд╕ рд░реВрдк рдореЗрдВ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ, рдЬрд┐рд╕рдореЗрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдЗрд╕рдХрд╛ рдЗрд░рд╛рджрд╛ рдХрд┐рдпрд╛ рдерд╛ред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЗрд╕рдХреЗ рд╕рд╛рде рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ - рд╕реНрд░реЛрдд рдЬреАрдереБрдм рдкрд░ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕рд╛рдорд╛рдиреНрдп cmake рдХреЗ рд╕рд╛рде GNU / Linux рдХреЗ рддрд╣рдд рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред


рдЕрдЪреНрдЫреА рдЦрдмрд░ рд╕реЗ - рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ 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) 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐, .bs рдФрд░ .data рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдб 70 MiB рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпрджрд┐ рдпрд╣ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд╕рд╛рде рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рддреЛ рдХреЛрдб рдЫреЛрдЯрд╛ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред


рдЖрдЗрдП рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдмрд╛рд╣рд░ рдлреЗрдВрдХрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рддрд╛рдХрд┐ рдПрдХ рдиреНрдпреВрдирддрдо рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛ (рдЬреЛ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрд╕ cmake .. -LA рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ), рдЗрд╕рд▓рд┐рдП cmake .. -LA рдХреЛ рджреЗрдЦреЗрдВ 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 рдЕрднреА рднреА рдХрд╛рдлреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдлрд▓рддрд╛ рдХреА рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реИред


рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ рдЪрд▓рд╛рдПрдВ


рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ, рдЗрд╕рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреНрдпреВрдореВ рдкрд░ рдЪрд▓рддреА рд╣реИред рдЕрдиреБрдХрд░рдгреАрдп рдордВрдЪ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдЗрдВрдЯреАрдЧреНрд░реЗрдЯрд░ / рд╕реАрдкреА рдХреЛ рдЪреБрдирд╛, рдХреНрдпреЛрдВрдХрд┐ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдПрдЖрд░рдПрдо рднреА рд╣реИ, рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рдПрдордмреЙрдХреНрд╕ рдЗрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред


Embox рдореЗрдВ рдмрд╛рд╣рд░реА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░ рд╣реИ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдо OpenCV рдХреЛ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ (рд╕реНрдереИрддрд┐рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ "рдиреНрдпреВрдирддрдо" рдмрд┐рд▓реНрдб рдХреЗ рд▓рд┐рдП рд╕рднреА рд╕рдорд╛рди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реБрдП), рдЙрд╕рдХреЗ рдмрд╛рдж рдореИрдВ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрдиреЗ рд╡рд╛рд▓рд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ:


 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() рдлрд╝рдВрдХреНрд╢рди рдХреНрдпреВрдЯреА, рдЬреАрдЯреАрдХреЗ рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ, рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдПрд╕рдЯреАрдПрдо 32 рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреНрдпреВрдЯреА рдХреЛ STM32F7Discovery рдкрд░ рднреА рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдкрд░ рдПрдХ рдЕрдиреНрдп рд▓реЗрдЦ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреА :)


рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рдмрд╛рдж рдХрд┐ рдХрд┐рд╕ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕реАрдорд╛ рдбрд┐рдЯреЗрдХреНрдЯрд░ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдореЗрдВ рдПрдХ рдЫрд╡рд┐ рдорд┐рд▓рддреА рд╣реИред



рдореВрд▓ рдЪрд┐рддреНрд░



рдкрд░рд┐рдгрд╛рдо


STM32F7Discovery рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ


32F746GDISCOVERY рдкрд░ рдХрдИ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╡рд┐рднрд╛рдЬрди рд╣реИрдВ рдЬрд┐рдирдХрд╛ рд╣рдо рд╡реИрд╕реЗ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ


  1. 320KiB RAM
  2. рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП 1MiB рдлрд╝реНрд▓реИрд╢
  3. 8MiB SDRAM
  4. 16MiB QSPI рдирдВрдж рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡
  5. рдорд╛рдЗрдХреНрд░реЛрдПрд╕рдбреА рдХрд╛рд░реНрдб рд╕реНрд▓реЙрдЯ

рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрд╕рдбреА рдХрд╛рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдиреНрдпреВрдирддрдо рдЙрджрд╛рд╣рд░рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ, рдпрд╣ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИред
рдбрд┐рд╕реНрдкреНрд▓реЗ рдореЗрдВ 480x272 рдХрд╛ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдлреНрд░реЗрдордмрдлрд╝рд░ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА 32 рдмрд┐рдЯреНрд╕ рдХреА рдЧрд╣рд░рд╛рдИ рдкрд░ 522,240 рдмрд╛рдЗрдЯреНрд╕ рд╣реЛрдЧреА, рдЕрд░реНрдерд╛рддред рдпрд╣ RAM рдХреЗ рдЖрдХрд╛рд░ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо SDRAM рдореЗрдВ рдлреНрд░реЗрдордмрдлрд╝рд░ рдФрд░ рдПрдХ рдЧреБрдЪреНрдЫрд╛ (рдЬреЛ рдХрд┐ OpenCV рдХреЛ рдЫрд╡рд┐рдпреЛрдВ рдФрд░ рд╕рд╣рд╛рдпрдХ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдВрдЧреЗ), рд╕рдм рдХреБрдЫ (рдвреЗрд░ рдФрд░ рдЕрдиреНрдп рд╕рд┐рд╕реНрдЯрдо рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдореЗрдореЛрд░реА) рд░реИрдо рдореЗрдВ рдЬрд╛рдПрдВрдЧреЗред ред


рдпрджрд┐ рд╣рдо STM32F7Discovery рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд▓реЗрддреЗ рд╣реИрдВ (рд╕рдВрдкреВрд░реНрдг рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдлреЗрдВрдХ рджреЗрддреЗ рд╣реИрдВ, рд╕рднреА рдХрдорд╛рдВрдбреНрд╕, рд╕реНрдЯреИрдХ рдХреЛ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдЫреЛрдЯрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрджрд┐) рдФрд░ рдУрдкрдирд╕реАрд╡реА рдХреЛ рд╡рд╣рд╛рдВ рдХреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрд╡рд╢реНрдпрдХ рдореЗрдореЛрд░реА рдХреЗ рд╕рд╛рде, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реЛрдВрдЧреЗ:


  text data bss dec hex filename 2876890 459208 312736 3648834 37ad42 build/base/bin/embox 

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЦрдВрдбреЛрдВ рд╕реЗ рдмрд╣реБрдд рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдореИрдВ рд╕рдордЭрд╛рддрд╛ рд╣реВрдВ: рдирд┐рд░реНрджреЗрд╢ рдФрд░ рд╕реНрдерд┐рд░рд╛рдВрдХ (рдореЛрдЯреЗ рддреМрд░ рдкрд░, рдЖрд╕рд╛рдиреА рд╕реЗ рдбреЗрдЯрд╛) .rodata рдФрд░ .rodata , рдбреЗрдЯрд╛ рдореЗрдВ .bss рдФрд░ "рд╢реВрдиреНрдп" .bss рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЪрд░ рдХреЛ рдПрдХ рд╕реНрдерд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдпрд╣ рдЦрдВрдб рд░реИрдо рдореЗрдВ "рдЬрд╛рдПрдЧрд╛")ред


рдЕрдЪреНрдЫреА рдЦрдмрд░ рдпрд╣ рд╣реИ рдХрд┐ .bss / .bss рдлрд┐рдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╕рд╛рде .text рдкрд░реЗрд╢рд╛рдиреА рдпрд╣ рд╣реИ рдХрд┐ рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ 1MiB рдореЗрдореЛрд░реА рд╣реИред рдЖрдк рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП .text рд╕реЗ рдЪрд┐рддреНрд░ .text рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, SD рдХрд╛рд░реНрдб рд╕реЗ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдореЗрдВ рдореЗрдореЛрд░реА рдореЗрдВ, рд▓реЗрдХрд┐рди рдлрд▓ .png рдХрд╛ рд╡рдЬрди рд▓рдЧрднрдЧ 330KiB рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛: рдЕрдзрд┐рдХрд╛рдВрд╢ .text рдореЗрдВ OpenCV рдХреЛрдб рд╢рд╛рдорд┐рд▓ рд╣реЛрдЧрд╛ред


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


рдирддреАрдЬрддрди, QSPI рдореЗрдВ рд╕рднреА рдХреЛрдб рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЗрд╕реЗ рдПрдХ рдмреВрдЯрд▓реЛрдбрд░ рдХреЗ рд╕рд╛рде рдлреНрд▓реИрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ TFTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдмрд╛рдЗрдирд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ред


рдкрд░рд┐рдгрд╛рдо


рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ Embox рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рд▓рдЧрднрдЧ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдЖрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдмрд╛рд░-рдмрд╛рд░ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдЗрд╕рдореЗрдВ рджреЗрд░реА рд╣реБрдИред рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ libstdc ++ рдФрд░ standart рдЯреЗрдореНрдкрд▓реЗрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИред Embox рдореЗрдВ C ++ рдХреЛ рд╕рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдмрд╛рд╣рд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдБ рдореИрдВ рд╕рд┐рд░реНрдл рдЗрддрдирд╛ рдХрд╣реВрдБрдЧрд╛ рдХрд┐ рд╣рдо рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдЗрд╕ рд╕рдорд░реНрдерди рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ :)


рдЕрдВрдд рдореЗрдВ, рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рджреВрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ (рдХрдо рд╕реЗ рдХрдо рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдУрдкрдирд╕реАрд╡реА рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП), рдФрд░ рдЙрджрд╛рд╣рд░рдг рд╢реБрд░реВ рд╣реБрдЖред рдХреИрдиреА рдлрд┐рд▓реНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рд╕реАрдорд╛рдУрдВ рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 40 рд▓рдВрдмреЗ рд╕реЗрдХрдВрдб рдмреЛрд░реНрдб рд▓реЗрддрд╛ рд╣реИред рдпрд╣, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдмрд╣реБрдд рд▓рдВрдмрд╛ рд╣реИ (рдЗрд╕ рдорд╛рдорд▓реЗ рдХреЛ рдХреИрд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ, рдЕрдЧрд░ рдпрд╣ рд╕рдлрд▓ рд╣реБрдЖ рддреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рд▓реЗрдЦ рд▓рд┐рдЦрдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛)ред




рдлрд┐рд░ рднреА, рдордзреНрдпрд╡рд░реНрддреА рд▓рдХреНрд╖реНрдп рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдмрдирд╛рдирд╛ рдерд╛ рдЬреЛ рдХреНрд░рдорд╢рдГ STM32 рдкрд░ OpenCV рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдореМрд▓рд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рджрд┐рдЦрд╛рдПрдЧрд╛, рдпрд╣ рд▓рдХреНрд╖реНрдп рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЪреАрдпрд░реНрд╕!

tl; dr: рд╕реНрдЯреЗрдк рдмрд╛рдп рд╕реНрдЯреЗрдк рдирд┐рд░реНрджреЗрд╢


0: рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Embox рдХреЗ рд╕реНрд░реЛрдд рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ:


  git clone https://github.com/embox/embox && cd ./embox 

1: рдЪрд▓рд┐рдП рдПрдХ рдмреВрдЯрд▓реЛрдбрд░ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ QSPI рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдХреЛ "рдлреНрд▓реИрд╢" рдХрд░реЗрдЧрд╛ред


  make confload-arm/stm32f7cube 

рдЕрдм рдЖрдкрдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдЯреАрдПрдлрдЯреАрдкреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЫрд╡рд┐ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВрдЧреЗред рдмреЛрд░реНрдб рдФрд░ рд╣реЛрд╕реНрдЯ рдХреЗ рдЖрдИрдкреА рдкрддреЗ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ conf / rootfs / рдиреЗрдЯрд╡рд░реНрдХ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред


рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЙрджрд╛рд╣рд░рдг:


 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.bin рдореЗрдВ


  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/qspi_objcopy.sh #   -- build/base/bin/qspi.bin 

5: tftp рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, QspI рдлреНрд▓реИрд╢ рдбреНрд░рд╛рдЗрд╡ рдкрд░ qspi.bin.bin рд▓реЛрдб рдХрд░реЗрдВред рд╣реЛрд╕реНрдЯ рдкрд░, рдЖрдкрдХреЛ qspi.bin рдХреЛ tftp рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдХреЙрдкреА рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЖрдорддреМрд░ рдкрд░ / 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 

Embox рдкрд░ (рдпрд╛рдиреА, рдмреВрдЯрд▓реЛрдбрд░ рдореЗрдВ), рдЖрдкрдХреЛ рдирд┐рдореНрди рдХрдорд╛рдВрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╕рд░реНрд╡рд░ рдХрд╛ рдкрддрд╛ 192.168.2.1 рд╣реИ):


  embox> qspi_loader qspi.bin 192.168.2.1 

6: goto рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдкрдХреЛ QSPI рдореЗрдореЛрд░реА рдореЗрдВ "рдЬрдВрдк" рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдерд╛рди рдЗрд╕ рдЖрдзрд╛рд░ рдкрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрдЧрд╛ рдХрд┐ рдЫрд╡рд┐ рдХреИрд╕реЗ рдЬреБрдбрд╝реА рд╣реБрдИ рд╣реИ, рдЖрдк рдЗрд╕ рдкрддреЗ рдХреЛ mem 0x90000000 рд╕рд╛рде рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ (рд╢реБрд░реБрдЖрдд рдХрд╛ рдкрддрд╛ рджреВрд╕рд░реЗ 32-рдмрд┐рдЯ рдЫрд╡рд┐ рд╢рдмреНрдж рдореЗрдВ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ); рдЖрдкрдХреЛ -s рдзреНрд╡рдЬ рдХреЗ рд╕рд╛рде рд╕реНрдЯреИрдХ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╕реНрдЯреИрдХ рдкрддрд╛ 0x90000000 рдкрд░ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:


  embox>mem 0x90000000 0x90000000: 0x20023200 0x9000c27f 0x9000c275 0x9000c275 тЖС тЖС        embox>goto -i 0x9000c27f -s 0x20023200 #  -i         <      ,    OpenCV > 

7: рднрд╛рдЧреЛ


  embox> edges 20 

рдФрд░ 40 рд╕реЗрдХрдВрдб рдХреА рд╕реАрдорд╛ рдЦреЛрдЬ рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВ :)


рдЕрдЧрд░ рдХреБрдЫ рдЧрд▓рдд рд╣реЛрддрд╛ рд╣реИ - рд╣рдорд╛рд░реА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ , рдпрд╛ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдореЗрдВ embox-devel@googlegroups.com, рдпрд╛ рдпрд╣рд╛рдБ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВред

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


All Articles