STM32F7-āĻĄāĻŋāĻ¸āĻ•āĻ­āĻžāĻ°āĻŋāĻ¤ā§‡ OpenCV

STM32F7-āĻĄāĻŋāĻ¸āĻ•āĻ­āĻžāĻ°āĻŋāĻ¤ā§‡ OpenCV āĻ†āĻŽāĻŋ āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻĻā§‡āĻ° āĻāĻ•āĻœāĻ¨ āĻāĻŽāĻŦāĻ•ā§āĻ¸, āĻāĻŦāĻ‚ āĻāĻ‡ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡ āĻ†āĻŽāĻŋ STM32746G āĻŦā§‹āĻ°ā§āĻĄā§‡ āĻ“āĻĒā§‡āĻ¨āĻ¸āĻŋāĻ­āĻŋ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻĒāĻ°āĻŋāĻšāĻžāĻ˛āĻ¨āĻž āĻ•āĻ°ā§‡āĻ›āĻŋ āĻ¸ā§‡ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻ•āĻĨāĻž āĻŦāĻ˛āĻŦāĨ¤

āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ°ā§āĻš āĻ‡āĻžā§āĻœāĻŋāĻ¨ā§‡ "STM32 āĻŦā§‹āĻ°ā§āĻĄā§‡ OpenCV" āĻāĻ° āĻŽāĻ¤ā§‹ āĻ•āĻŋāĻ›ā§ āĻŸāĻžāĻ‡āĻĒ āĻ•āĻ°ā§‡āĻ¨, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ†āĻĒāĻ¨āĻŋ āĻŦā§‡āĻļ āĻ•āĻŋāĻ›ā§ āĻ˛ā§‹āĻ• āĻ–ā§āĻāĻœā§‡ āĻĒā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻ¯āĻžāĻ°āĻž STM32 āĻŦā§‹āĻ°ā§āĻĄ āĻŦāĻž āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ•āĻ¨ā§āĻŸā§āĻ°ā§‹āĻ˛āĻžāĻ°ā§‡ āĻāĻ‡ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋāĻŸāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻ†āĻ—ā§āĻ°āĻšā§€ā§ˇ
āĻāĻŽāĻ¨ āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻ­āĻŋāĻĄāĻŋāĻ“ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯āĻž āĻ¨āĻžāĻŽ āĻ…āĻ¨ā§āĻ¸āĻžāĻ°ā§‡ āĻŦāĻŋāĻšāĻžāĻ° āĻ•āĻ°ā§‡, āĻ¯āĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ āĻ¤āĻž āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻ•āĻ°āĻž āĻ‰āĻšāĻŋāĻ¤, āĻ¤āĻŦā§‡ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ (āĻ†āĻŽāĻŋ āĻ¯ā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ­āĻŋāĻĄāĻŋāĻ“ āĻĻā§‡āĻ–ā§‡āĻ›āĻŋ) STM32 āĻŦā§‹āĻ°ā§āĻĄā§‡, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ•ā§āĻ¯āĻžāĻŽā§‡āĻ°āĻž āĻĨā§‡āĻ•ā§‡ āĻšāĻŋāĻ¤ā§āĻ°āĻŸāĻŋ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ āĻāĻŦāĻ‚ āĻĢāĻ˛āĻžāĻĢāĻ˛āĻŸāĻŋ āĻ¸ā§āĻ•ā§āĻ°āĻŋāĻ¨ā§‡ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛, āĻāĻŦāĻ‚ āĻ‡āĻŽā§‡āĻœ āĻĒā§āĻ°āĻ¸ā§‡āĻ¸āĻŋāĻ‚ āĻ¨āĻŋāĻœā§‡āĻ‡ āĻšāĻ¯āĻŧ āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ°ā§‡, āĻŦāĻž āĻ†āĻ°āĻ“ āĻļāĻ•ā§āĻ¤āĻŋāĻļāĻžāĻ˛ā§€ āĻŦā§‹āĻ°ā§āĻĄā§‡ (āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§‚āĻĒ, āĻ°āĻžāĻ¸ā§āĻĒāĻŦā§‡āĻ°āĻŋ āĻĒāĻžāĻ‡)āĨ¤

āĻ•ā§‡āĻ¨ āĻāĻŸāĻž āĻ•āĻ āĻŋāĻ¨?

āĻ¸āĻžāĻ°ā§āĻš āĻ•ā§‹āĻ¯āĻŧā§‡āĻ°āĻŋāĻ° āĻœāĻ¨āĻĒā§āĻ°āĻŋāĻ¯āĻŧāĻ¤āĻž āĻŦā§āĻ¯āĻžāĻ–ā§āĻ¯āĻž āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯ā§‡ OpenCV āĻšāĻ˛ āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻœāĻ¨āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻ•āĻŽā§āĻĒāĻŋāĻ‰āĻŸāĻžāĻ° āĻ­āĻŋāĻļāĻ¨ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ, āĻ¯āĻžāĻ° āĻŽāĻžāĻ¨ā§‡ āĻ†āĻ°āĻ“ āĻŦā§‡āĻļāĻŋ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻ°āĻž āĻāĻŸāĻŋāĻ° āĻ¸āĻžāĻĨā§‡ āĻĒāĻ°āĻŋāĻšāĻŋāĻ¤, āĻāĻŦāĻ‚ āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻ•āĻ¨ā§āĻŸā§āĻ°ā§‹āĻ˛āĻžāĻ°ā§‡ āĻĄā§‡āĻ¸ā§āĻ•āĻŸāĻĒ-āĻ°ā§‡āĻĄāĻŋ āĻ•ā§‹āĻĄ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹āĻ° āĻ•ā§āĻˇāĻŽāĻ¤āĻž āĻŦāĻŋāĻ•āĻžāĻļ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻŸāĻŋāĻ•ā§‡ āĻŦā§āĻ¯āĻžāĻĒāĻ•āĻ­āĻžāĻŦā§‡ āĻ¸āĻšāĻœ āĻ•āĻ°ā§‡āĨ¤ āĻ•āĻŋāĻ¨ā§āĻ¤ā§ āĻ•ā§‡āĻ¨ āĻāĻ–āĻ¨āĻ“ āĻāĻ‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§‹āĻ¨ āĻœāĻ¨āĻĒā§āĻ°āĻŋāĻ¯āĻŧ āĻ°ā§‡āĻĄāĻŋāĻŽā§‡āĻĄ āĻ°ā§‡āĻ¸āĻŋāĻĒāĻŋ āĻ¨ā§‡āĻ‡?

āĻ›ā§‹āĻŸ āĻļāĻžāĻ˛āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ OpenCV āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻĻā§āĻŸāĻŋ āĻŦā§ˆāĻļāĻŋāĻˇā§āĻŸā§āĻ¯ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāĻ¤:

  • āĻ†āĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻŽāĻĄāĻŋāĻ‰āĻ˛āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ¨ā§āĻ¯ā§‚āĻ¨āĻ¤āĻŽ āĻ¸ā§‡āĻŸ āĻĻāĻŋāĻ¯āĻŧā§‡āĻ“ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋāĻŸāĻŋ āĻ¸āĻ‚āĻ•āĻ˛āĻ¨ āĻ•āĻ°ā§‡āĻ¨, āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ–ā§āĻŦ āĻŦāĻĄāĻŧ āĻ•ā§‹āĻĄ (āĻ…āĻ¨ā§‡āĻ• āĻŽā§‡āĻ—āĻžāĻŦāĻžāĻ‡āĻŸ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€) āĻāĻ° āĻ•āĻžāĻ°āĻŖā§‡ āĻāĻ•āĻ‡ STM32F7Discovery (āĻāĻŽāĻ¨āĻ•āĻŋ OS āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ¨āĻž āĻ•āĻ°ā§‡āĻ“) āĻāĻ° āĻĢā§āĻ˛ā§āĻ¯āĻžāĻļ āĻŽā§‡āĻŽāĻ°āĻŋāĻ¤ā§‡ āĻĢāĻŋāĻŸ āĻšāĻŦā§‡ āĻ¨āĻžāĨ¤
  • āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻ¨āĻŋāĻœā§‡āĻ‡ C++ āĻ āĻ˛ā§‡āĻ–āĻž, āĻ¯āĻžāĻ° āĻŽāĻžāĻ¨ā§‡
    • āĻ‡āĻ¤āĻŋāĻŦāĻžāĻšāĻ• āĻ°āĻžāĻ¨āĻŸāĻžāĻ‡āĻŽā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ (āĻŦā§āĻ¯āĻ¤āĻŋāĻ•ā§āĻ°āĻŽ, āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋ)
    • LibC/Posix-āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻžāĻŽāĻžāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨, āĻ¯āĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻŽāĻŦā§‡āĻĄā§‡āĻĄ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āĻ° āĻœāĻ¨ā§āĻ¯ OS-āĻ¤ā§‡ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ - āĻ†āĻĒāĻ¨āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻĒā§āĻ˛āĻžāĻ¸ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ STL āĻŸā§‡āĻŽāĻĒā§āĻ˛ā§‡āĻŸ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ (āĻ­ā§‡āĻ•ā§āĻŸāĻ°, āĻ‡āĻ¤ā§āĻ¯āĻžāĻĻāĻŋ) āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨āĨ¤

āĻāĻŽāĻŦāĻ•ā§āĻ¸ā§‡ āĻĒā§‹āĻ°ā§āĻŸ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡

āĻ¯āĻĨāĻžāĻ°ā§€āĻ¤āĻŋ, āĻ…āĻĒāĻžāĻ°ā§‡āĻŸāĻŋāĻ‚ āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡ āĻ•ā§‹āĻ¨ā§‹ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽ āĻĒā§‹āĻ°ā§āĻŸ āĻ•āĻ°āĻžāĻ° āĻ†āĻ—ā§‡, āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻ°āĻž āĻ¯ā§‡ āĻĢāĻ°ā§āĻŽā§‡ āĻāĻŸāĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻšā§‡āĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛ā§‡āĻ¨ āĻ¸ā§‡āĻŸāĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻšā§‡āĻˇā§āĻŸāĻž āĻ•āĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻ­āĻžāĻ˛ āĻ§āĻžāĻ°āĻŖāĻžāĨ¤ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡, āĻāĻ¤ā§‡ āĻ•ā§‹āĻ¨ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¨ā§‡āĻ‡ - āĻ¸ā§‹āĻ°ā§āĻ¸ āĻ•ā§‹āĻĄāĻŸāĻŋ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§‡ github, āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋāĻŸāĻŋ GNU/Linux-āĻāĻ° āĻ…āĻ§ā§€āĻ¨ā§‡ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ cmake āĻĻāĻŋāĻ¯āĻŧā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻ­āĻžāĻ˛ āĻ–āĻŦāĻ° āĻšāĻ˛ āĻ¯ā§‡ 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-āĻāĻ“ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹ āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ¤āĻŦā§‡ āĻāĻŸāĻŋ āĻ…āĻ¨ā§āĻ¯ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡ āĻ†āĻ˛ā§‹āĻšāĻ¨āĻž āĻ•āĻ°āĻž āĻšāĻŦā§‡ 🙂

āĻĒā§āĻ°āĻžāĻ¨ā§āĻ¤ āĻĄāĻŋāĻŸā§‡āĻ•ā§āĻŸāĻ°ā§‡āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ•ā§‹āĻ¨ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ā§‡ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻ¤āĻž āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ•ā§āĻˇāĻŋāĻĒā§āĻ¤ āĻŦā§āĻ¯āĻžāĻ–ā§āĻ¯āĻžāĻ° āĻĒāĻ°ā§‡, āĻ†āĻŽāĻ°āĻž āĻāĻ•āĻŸāĻŋ āĻšāĻŋāĻ¤ā§āĻ° āĻĒāĻžāĻ‡āĨ¤

STM32F7-āĻĄāĻŋāĻ¸āĻ•āĻ­āĻžāĻ°āĻŋāĻ¤ā§‡ OpenCV

āĻŽā§‚āĻ˛ āĻ›āĻŦāĻŋ

STM32F7-āĻĄāĻŋāĻ¸āĻ•āĻ­āĻžāĻ°āĻŋāĻ¤ā§‡ OpenCV

āĻĢāĻ˛

STM32F7Discovery-āĻ āĻšāĻ˛āĻ›ā§‡

32F746GDISCOVERY-āĻ āĻŦā§‡āĻļ āĻ•āĻ¯āĻŧā§‡āĻ•āĻŸāĻŋ āĻšāĻžāĻ°ā§āĻĄāĻ“āĻ¯āĻŧā§āĻ¯āĻžāĻ° āĻŽā§‡āĻŽāĻ°āĻŋ āĻŦāĻŋāĻ­āĻžāĻ— āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯āĻž āĻ†āĻŽāĻ°āĻž āĻāĻ• āĻŦāĻž āĻ…āĻ¨ā§āĻ¯ āĻ‰āĻĒāĻžāĻ¯āĻŧā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°āĻŋ

  1. 320KiB RAM
  2. āĻ›āĻŦāĻŋāĻ° āĻœāĻ¨ā§āĻ¯ 1MiB āĻĢā§āĻ˛ā§āĻ¯āĻžāĻļ
  3. 8MiB SDRAM
  4. 16MiB QSPI NAND āĻĢā§āĻ˛ā§āĻ¯āĻžāĻļ
  5. āĻŽāĻžāĻ‡āĻ•ā§āĻ°ā§‹āĻāĻ¸āĻĄāĻŋ āĻ•āĻžāĻ°ā§āĻĄ āĻ¸ā§āĻ˛āĻŸ

āĻāĻ•āĻŸāĻŋ 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 āĻĻā§€āĻ°ā§āĻ˜ āĻ¸ā§‡āĻ•ā§‡āĻ¨ā§āĻĄ āĻ¸āĻŽāĻ¯āĻŧ āĻ˛āĻžāĻ—ā§‡āĨ¤ āĻāĻŸāĻŋ, āĻ…āĻŦāĻļā§āĻ¯āĻ‡, āĻ–ā§āĻŦ āĻĻā§€āĻ°ā§āĻ˜ (āĻāĻ‡ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŸāĻŋāĻ•ā§‡ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ…āĻĒā§āĻŸāĻŋāĻŽāĻžāĻ‡āĻœ āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¸ā§‡ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻŦāĻŋāĻŦā§‡āĻšāĻ¨āĻž āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡, āĻ¸āĻžāĻĢāĻ˛ā§āĻ¯ā§‡āĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻāĻŸāĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ āĻ˛ā§‡āĻ–āĻž āĻ¸āĻŽā§āĻ­āĻŦ āĻšāĻŦā§‡)āĨ¤

STM32F7-āĻĄāĻŋāĻ¸āĻ•āĻ­āĻžāĻ°āĻŋāĻ¤ā§‡ OpenCV

āĻ¯āĻžāĻ‡āĻšā§‹āĻ•, āĻŽāĻ§ā§āĻ¯āĻŦāĻ°ā§āĻ¤ā§€ āĻ˛āĻ•ā§āĻˇā§āĻ¯ āĻ›āĻŋāĻ˛ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°ā§‹āĻŸā§‹āĻŸāĻžāĻ‡āĻĒ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻ¯āĻž āĻ¯āĻĨāĻžāĻ•ā§āĻ°āĻŽā§‡ 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

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨