āĻāĻŽāĻŋ āĻ
āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻĄā§āĻā§āĻ˛āĻĒāĻžāĻ°āĻĻā§āĻ° āĻāĻāĻāĻ¨
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ°ā§āĻ āĻāĻā§āĻāĻŋāĻ¨ā§ "STM32 āĻŦā§āĻ°ā§āĻĄā§ OpenCV" āĻāĻ° āĻŽāĻ¤ā§ āĻāĻŋāĻā§ āĻāĻžāĻāĻĒ āĻāĻ°ā§āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻĒāĻ¨āĻŋ āĻŦā§āĻļ āĻāĻŋāĻā§ āĻ˛ā§āĻ āĻā§āĻāĻā§ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¯āĻžāĻ°āĻž 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 āĻāĻāĻ¨āĻ āĻ
āĻ¨ā§āĻ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻžāĻĢāĻ˛ā§āĻ¯ā§āĻ° āĻāĻļāĻž āĻĻā§āĻ¯āĻŧāĨ¤
āĻāĻŽā§āĻ˛ā§āĻāĻ°ā§ āĻāĻžāĻ˛āĻžāĻ¨
āĻāĻŽā§āĻ˛ā§āĻāĻ°ā§ āĻĄāĻŋāĻŦāĻžāĻ āĻāĻ°āĻž āĻ āĻ¨ā§āĻ āĻ¸āĻšāĻ, āĻ¤āĻžāĻ āĻĒā§āĻ°āĻĨāĻŽā§ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻāĻŋ āĻāĻŋāĻāĻŽā§āĻ¤ā§ āĻāĻžāĻ āĻāĻ°ā§āĨ¤ āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻāĻ°āĻŖā§āĻ¯āĻŧ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻāĻŽāĻŋ āĻāĻ¨ā§āĻāĻŋāĻā§āĻ°ā§āĻāĻ°/āĻ¸āĻŋāĻĒāĻŋ āĻŦā§āĻā§ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋ, āĻāĻžāĻ°āĻŖ āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻāĻāĻŋ āĻāĻāĻ°āĻāĻŽ āĻāĻŦāĻ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻ¤, āĻāĻŽāĻŦāĻā§āĻ¸ āĻāĻ āĻĒā§āĻ˛ā§āĻ¯āĻžāĻāĻĢāĻ°ā§āĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ°āĻžāĻĢāĻŋāĻā§āĻ¸ āĻāĻāĻāĻĒā§āĻ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻ°ā§āĨ¤
āĻāĻŽāĻŦāĻā§āĻ¸ā§āĻ° āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻ¤ā§āĻ°āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ°āĻ¯āĻŧā§āĻā§, āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻŽāĻĄāĻŋāĻāĻ˛ āĻšāĻŋāĻ¸āĻžāĻŦā§ 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()
QT, GTK āĻāĻŦāĻ Windows āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻŦāĻŋ āĻāĻāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¯āĻž āĻ
āĻŦāĻļā§āĻ¯āĻ STM32-āĻāĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§ āĻĨāĻžāĻāĻŦā§ āĻ¨āĻžāĨ¤ āĻĒā§āĻ°āĻā§āĻ¤āĻĒāĻā§āĻˇā§, QT STM32F7Discovery-āĻāĻ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¤āĻŦā§ āĻāĻāĻŋ āĻ
āĻ¨ā§āĻ¯ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§ āĻāĻ˛ā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšāĻŦā§ đ
āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤ āĻĄāĻŋāĻā§āĻā§āĻāĻ°ā§āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻā§āĻ¨ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ¤āĻž āĻāĻāĻāĻŋ āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻžāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻāĻŋāĻ¤ā§āĻ° āĻĒāĻžāĻāĨ¤
āĻŽā§āĻ˛ āĻāĻŦāĻŋ
āĻĢāĻ˛
STM32F7Discovery-āĻ āĻāĻ˛āĻā§
32F746GDISCOVERY-āĻ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻšāĻžāĻ°ā§āĻĄāĻāĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻŽā§āĻŽāĻ°āĻŋ āĻŦāĻŋāĻāĻžāĻ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻāĻŽāĻ°āĻž āĻāĻ āĻŦāĻž āĻ āĻ¨ā§āĻ¯ āĻāĻĒāĻžāĻ¯āĻŧā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ
- 320KiB RAM
- āĻāĻŦāĻŋāĻ° āĻāĻ¨ā§āĻ¯ 1MiB āĻĢā§āĻ˛ā§āĻ¯āĻžāĻļ
- 8MiB SDRAM
- 16MiB QSPI NAND āĻĢā§āĻ˛ā§āĻ¯āĻžāĻļ
- āĻŽāĻžāĻāĻā§āĻ°ā§āĻāĻ¸āĻĄāĻŋ āĻāĻžāĻ°ā§āĻĄ āĻ¸ā§āĻ˛āĻ
āĻāĻāĻāĻŋ 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
āĻ¸ā§āĻāĻžāĻ¨ā§ "nulled" āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻāĻā§, āĻ¯ā§āĻā§āĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻžāĻ¯āĻŧāĻāĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ (āĻāĻ āĻŦāĻŋāĻāĻžāĻāĻāĻŋ RAM-āĻ¤ā§ "āĻ¯āĻžāĻŦā§")āĨ¤
āĻāĻžāĻ˛ āĻāĻŦāĻ° āĻšāĻ˛ .data
/.bss
āĻŽāĻžāĻĒāĻ¸āĻ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¸āĻā§āĻā§ .text
āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻšāĻ˛ āĻ¯ā§ āĻāĻŽā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° 1MiB āĻŽā§āĻŽāĻ°āĻŋ āĻāĻā§āĨ¤ āĻŦā§āĻ° āĻāĻ°ā§ āĻĻā§āĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ .text
āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĨā§āĻā§ āĻāĻŦāĻŋāĻāĻŋ āĻĒāĻĄāĻŧā§āĻ¨ āĻāĻŦāĻ āĻāĻāĻŋ āĻĒāĻĄāĻŧā§āĻ¨, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¸ā§āĻāĻžāĻ°ā§āĻāĻāĻĒā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ SD āĻāĻžāĻ°ā§āĻĄ āĻĨā§āĻā§ āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ fruits.png āĻāĻ° āĻāĻāĻ¨ āĻĒā§āĻ°āĻžāĻ¯āĻŧ 330KiB, āĻ¤āĻžāĻ āĻāĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻŦā§ āĻ¨āĻž: āĻŦā§āĻļāĻŋāĻ°āĻāĻžāĻ .text
OpenCV āĻā§āĻĄ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ āĻŋāĻ¤āĨ¤
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻāĻŋāĻ¨āĻŋāĻ¸ āĻŦāĻžāĻāĻŋ āĻāĻā§ - āĻā§āĻĄā§āĻ° āĻāĻāĻāĻŋ āĻ āĻāĻļ āĻāĻāĻāĻŋ QSPI āĻĢā§āĻ˛ā§āĻ¯āĻžāĻļā§ āĻ˛ā§āĻĄ āĻāĻ°āĻž (āĻāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻŦāĻžāĻ¸ā§ āĻŽā§āĻŽāĻ°āĻŋ āĻŽā§āĻ¯āĻžāĻĒ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻŦāĻŋāĻļā§āĻˇ āĻŽā§āĻĄ āĻ°āĻ¯āĻŧā§āĻā§, āĻ¯āĻžāĻ¤ā§ āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ° āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻāĻ āĻĄā§āĻāĻž āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§)āĨ¤ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻāĻāĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻĻā§āĻāĻž āĻĻā§āĻ¯āĻŧ: āĻĒā§āĻ°āĻĨāĻŽāĻ¤, āĻĄāĻŋāĻāĻžāĻāĻ¸āĻāĻŋ āĻ°āĻŋāĻŦā§āĻ āĻāĻ°āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ QSPI āĻĢā§āĻ˛ā§āĻ¯āĻžāĻļ āĻĄā§āĻ°āĻžāĻāĻā§āĻ° āĻŽā§āĻŽāĻ°āĻŋ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¨āĻž (āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻ˛āĻžāĻĻāĻžāĻāĻžāĻŦā§ āĻŽā§āĻŽāĻ°āĻŋ-āĻŽā§āĻ¯āĻžāĻĒāĻĄ āĻŽā§āĻĄ āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§), āĻāĻŦāĻ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻ¤, āĻāĻĒāĻ¨āĻŋ āĻāĻ āĻŽā§āĻŽāĻ°āĻŋāĻāĻŋāĻā§ "āĻĢā§āĻ˛ā§āĻ¯āĻžāĻļ" āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§āĻ¨ āĻ¨āĻžāĨ¤ āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻŦā§āĻāĻ˛ā§āĻĄāĻžāĻ°āĨ¤
āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ, QSPI-āĻ¤ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻĄ āĻ˛āĻŋāĻā§āĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛, āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸ā§āĻŦ-āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ˛ā§āĻĄāĻžāĻ° āĻĻāĻŋāĻ¯āĻŧā§ āĻĢā§āĻ˛ā§āĻ¯āĻžāĻļ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻ¯āĻž TFTP-āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻŦāĻžāĻāĻ¨āĻžāĻ°āĻŋ āĻā§āĻ°āĻšāĻŖ āĻāĻ°āĻŦā§āĨ¤
āĻĢāĻ˛
āĻāĻ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻāĻŋ āĻāĻŽāĻŦāĻā§āĻ¸ā§ āĻĒā§āĻ°ā§āĻ āĻāĻ°āĻžāĻ° āĻ§āĻžāĻ°āĻŖāĻžāĻāĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻāĻ āĻŦāĻāĻ° āĻāĻā§ āĻĒā§āĻ°āĻāĻžāĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻŦāĻžāĻ°āĻŦāĻžāĻ° āĻāĻāĻŋ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻžāĻ°āĻŖā§ āĻ¸ā§āĻĨāĻāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻšāĻ˛ libstdc++ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨āĨ¤ āĻāĻŽāĻŦāĻā§āĻ¸ā§ C++ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋ āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§āĻ° āĻ¸ā§āĻ¯ā§āĻā§āĻ° āĻŦāĻžāĻāĻ°ā§, āĻ¤āĻžāĻ āĻāĻāĻžāĻ¨ā§ āĻāĻŽāĻŋ āĻļā§āĻ§ā§ āĻŦāĻ˛āĻŦ āĻ¯ā§ āĻāĻŽāĻ°āĻž āĻāĻ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻ° āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻ āĻŋāĻ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖā§ āĻāĻ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨āĻāĻŋ āĻ āĻ°ā§āĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒā§āĻ°ā§āĻāĻŋ đ
āĻļā§āĻˇ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤, āĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻā§āĻ˛āĻŋ āĻāĻžāĻāĻŋāĻ¯āĻŧā§ āĻāĻ āĻ˛ (āĻ āĻ¨ā§āĻ¤āĻ¤ āĻāĻĒā§āĻ¨āĻ¸āĻŋāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¯āĻĨā§āĻˇā§āĻ), āĻāĻŦāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻāĻŋ āĻāĻ˛ā§ āĻā§āĻ˛āĨ¤ āĻā§āĻ¯āĻžāĻ¨āĻŋ āĻĢāĻŋāĻ˛ā§āĻāĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸ā§āĻŽāĻžāĻ¨āĻž āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ°ā§āĻĄā§āĻ° āĻāĻ¨ā§āĻ¯ 40 āĻĻā§āĻ°ā§āĻ āĻ¸ā§āĻā§āĻ¨ā§āĻĄ āĻ¸āĻŽāĻ¯āĻŧ āĻ˛āĻžāĻā§āĨ¤ āĻāĻāĻŋ, āĻ āĻŦāĻļā§āĻ¯āĻ, āĻā§āĻŦ āĻĻā§āĻ°ā§āĻ (āĻāĻ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻāĻŋāĻā§ āĻā§āĻāĻžāĻŦā§ āĻ āĻĒā§āĻāĻŋāĻŽāĻžāĻāĻ āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¸ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻ°āĻ¯āĻŧā§āĻā§, āĻ¸āĻžāĻĢāĻ˛ā§āĻ¯ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ āĻ˛ā§āĻāĻž āĻ¸āĻŽā§āĻāĻŦ āĻšāĻŦā§)āĨ¤
āĻ¯āĻžāĻāĻšā§āĻ, āĻŽāĻ§ā§āĻ¯āĻŦāĻ°ā§āĻ¤ā§ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻŋāĻ˛ āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻā§āĻāĻžāĻāĻĒ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻ¯āĻž āĻ¯āĻĨāĻžāĻā§āĻ°āĻŽā§ STM32-āĻ¤ā§ OpenCV āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻŽā§āĻ˛āĻŋāĻ āĻ¸āĻŽā§āĻāĻžāĻŦāĻ¨āĻž āĻĻā§āĻāĻžāĻŦā§, āĻāĻ āĻ˛āĻā§āĻˇā§āĻ¯āĻāĻŋ āĻ āĻ°ā§āĻāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§, āĻšā§āĻ°āĻ°ā§!
tl;dr: āĻ§āĻžāĻĒā§ āĻ§āĻžāĻĒā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§
0: āĻāĻŽāĻŦāĻā§āĻ¸ āĻāĻ¤ā§āĻ¸ āĻĄāĻžāĻāĻ¨āĻ˛ā§āĻĄ āĻāĻ°ā§āĻ¨, āĻāĻāĻ°āĻāĻŽ:
git clone https://github.com/embox/embox && cd ./embox
1: āĻāĻ¸ā§āĻ¨ āĻāĻāĻāĻŋ āĻŦā§āĻāĻ˛ā§āĻĄāĻžāĻ° āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°ā§ āĻļā§āĻ°ā§ āĻāĻ°āĻŋ āĻ¯āĻž āĻāĻāĻāĻŋ QSPI āĻĢā§āĻ˛ā§āĻ¯āĻžāĻļ āĻĄā§āĻ°āĻžāĻāĻāĻā§ "āĻĢā§āĻ˛ā§āĻ¯āĻžāĻļ" āĻāĻ°āĻŦā§āĨ¤
make confload-arm/stm32f7cube
āĻāĻāĻ¨ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻāĻžāĻ°āĻŖ. āĻāĻŽāĻ°āĻž TFTP āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻŦāĻŋāĻāĻŋ āĻāĻĒāĻ˛ā§āĻĄ āĻāĻ°āĻŦāĨ¤ āĻŦā§āĻ°ā§āĻĄ āĻāĻŦāĻ āĻšā§āĻ¸ā§āĻ āĻāĻāĻĒāĻŋ āĻ āĻŋāĻāĻžāĻ¨āĻž āĻ¸ā§āĻ āĻāĻ°āĻ¤ā§, āĻāĻĒāĻ¨āĻžāĻā§ 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: ELF āĻŦāĻŋāĻāĻžāĻ āĻĨā§āĻā§ āĻ¨āĻŋāĻ°ā§āĻ¯āĻžāĻ¸ QSPI-āĻ 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 āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻāĻāĻāĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻāĻā§ āĻ¯āĻž āĻāĻāĻŋ āĻāĻ°ā§, āĻ¤āĻžāĻ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋ āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
./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
(āĻļā§āĻ°ā§ āĻ āĻŋāĻāĻžāĻ¨āĻžāĻāĻŋ āĻāĻŋāĻ¤ā§āĻ°ā§āĻ° āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ 32-āĻŦāĻŋāĻ āĻļāĻŦā§āĻĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻĢāĻŋāĻ āĻāĻ°ā§); āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸ā§āĻā§āĻ¯āĻžāĻ āĻĢā§āĻ˛ā§āĻ¯āĻžāĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ -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