рдкреЛрд░реНрдЯрд┐рдВрдЧ Qt рд╕реЗ STM32 рддрдХ

рд╢реБрдн рджреЛрдкрд╣рд░ рд╣рдо Embox рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ STM32F7-Discovery рдкрд░ Qt рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдмрддрд╛рдпрд╛ рдХрд┐ рд╣рдо OpenCV рдХреЛ рдХреИрд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗред

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

рджреВрд╕рд░реА рдУрд░, рдЗрд╕ рд╕рдордп рдорд▓реНрдЯреАрдореАрдбрд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рд╣реИрдВ рдФрд░ рдкрд╣рд▓реЗ рдкреЗрдВрдЯрд┐рдпрдо рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИрдВред рд▓рдЧрднрдЧ рдПрдХ рд╕рд╛рд▓ рдкрд╣рд▓реЗ, Qt рдмреНрд▓реЙрдЧ рдкрд░ рдПрдХ рдкреЛрд╕реНрдЯ рджрд┐рдЦрд╛рдИ рджреАред рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ RTEMS OS рдХреЗ рддрд╣рдд рдПрдХ Qt рдкреЛрд░реНрдЯ рдмрдирд╛рдпрд╛, рдФрд░ stm32f7 рдЪрд▓рд╛рдиреЗ рд╡рд╛рд▓реЗ рдХрдИ рдмреЛрд░реНрдбреЛрдВ рдкрд░ рд╡рд┐рдЬреЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдЙрджрд╛рд╣рд░рдг рд▓реЙрдиреНрдЪ рдХрд┐рдПред рдЗрд╕рдиреЗ рд╣рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рджреАред рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдерд╛, рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЦреБрдж рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпреВрдЯреА рдПрд╕рдЯреАрдПрдо 32 рдПрдл 7-рдбрд┐рд╕реНрдХрд╡рд░реА рдкрд░ рдзреАрдорд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдореЗрдВ рдЖрд╢реНрдЪрд░реНрдп рд╣реБрдЖ рдХрд┐ рдХреНрдпрд╛ рд╣рдо Embox рдХреЗ рддрд╣рдд Qt рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рди рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рдЬреЗрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдПрдиреАрдореЗрд╢рди рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

Embt рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ Qt 4.8 рдХреЛ рдкреЛрд░реНрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдЗрд╕реЗ рдЖрдЬрдорд╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рд╣рдордиреЗ рдореВрд╡рдмреНрд▓реЙрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЪреБрдирд╛ - рд╕реНрдкреНрд░рд┐рдВрдЧрд▓реА рдПрдиреАрдореЗрд╢рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдгред

QtU рдкрд░ Qt рдореВрд╡ рдХрд░рддрд╛ рд╣реИ


рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдХреНрдпреВрдЯреА рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ, рдпрджрд┐ рд╕рдВрднрд╡ рд╣реЛ рддреЛ рдПрдиреАрдореЗрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдХреЛрдВ рдХреЗ рдиреНрдпреВрдирддрдо рд╕реЗрдЯ рдХреЗ рд╕рд╛рдеред рдЗрд╕рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдк "-qconfig minimal, small, medium ..." рд╣реИред рдЗрд╕рдореЗрдВ рдХрдИ рдореИрдХреНрд░реЛрдЬрд╝ рдХреЗ рд╕рд╛рде Qt рдХреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИ - рд╕рдХреНрд╖рдо / рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ред рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЗ рдмрд╛рдж, рдпрджрд┐ рд╣рдо рдХреБрдЫ рдФрд░ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдЕрдиреНрдп рдзреНрд╡рдЬ рдЬреЛрдбрд╝реЗрдВред рдпрд╣рд╛рдБ рд╣рдорд╛рд░реЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред

рдХреНрдпреВрдЯреА рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдУрдПрд╕ рд╕рдВрдЧрддрддрд╛ рдкрд░рдд рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдПрдХ рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ QPA (Qt Platform Abstraction) рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЖрдзрд╛рд░ рдХреНрдпреВрдЯреА рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдпрд╛рд░ рдкреНрд▓рдЧрдЗрди fb_base рдерд╛, рдЬрд┐рд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд▓рд┐рдирдХреНрд╕ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдо рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ emboxfb рдкреНрд▓рдЧрдЗрди рд╣реИ рдЬреЛ Embox Qt рдХреЛ рдлреНрд░реЗрдордмрдлрд╝рд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдпрд╣ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдорджрдж рдХреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд╣рд╛рдБ рдЖ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕ рддрд░рд╣ рдкреНрд▓рдЧрдЗрди рдирд┐рд░реНрдорд╛рдг рджрд┐рдЦрддрд╛ рд╣реИ
QEmboxFbIntegration::QEmboxFbIntegration() : fontDb(new QGenericUnixFontDatabase()) { struct fb_var_screeninfo vinfo; struct fb_fix_screeninfo finfo; const char *fbPath = "/dev/fb0"; fbFd = open(fbPath, O_RDWR); if (fbPath < 0) { qFatal("QEmboxFbIntegration: Error open framebuffer %s", fbPath); } if (ioctl(fbFd, FBIOGET_FSCREENINFO, &finfo) == -1) { qFatal("QEmboxFbIntegration: Error ioctl framebuffer %s", fbPath); } if (ioctl(fbFd, FBIOGET_VSCREENINFO, &vinfo) == -1) { qFatal("QEmboxFbIntegration: Error ioctl framebuffer %s", fbPath); } fbWidth = vinfo.xres; fbHeight = vinfo.yres; fbBytesPerLine = finfo.line_length; fbSize = fbBytesPerLine * fbHeight; fbFormat = vinfo.fmt; fbData = (uint8_t *)mmap(0, fbSize, PROT_READ | PROT_WRITE, MAP_SHARED, fbFd, 0); if (fbData == MAP_FAILED) { qFatal("QEmboxFbIntegration: Error mmap framebuffer %s", fbPath); } if (!fbData || !fbSize) { qFatal("QEmboxFbIntegration: Wrong framebuffer: base = %p," "size=%d", fbData, fbSize); } mPrimaryScreen = new QEmboxFbScreen(fbData, fbWidth, fbHeight, fbBytesPerLine, emboxFbFormatToQImageFormat(fbFormat)); mPrimaryScreen->setPhysicalSize(QSize(fbWidth, fbHeight)); mScreens.append(mPrimaryScreen); this->printFbInfo(); } 


рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рд░рд┐рдбрд░реНрд╡рд┐рдВрдЧ рджрд┐рдЦреЗрдЧрд╛
 QRegion QEmboxFbScreen::doRedraw() { QVector<QRect> rects; QRegion touched = QFbScreen::doRedraw(); DPRINTF("QEmboxFbScreen::doRedraw\n"); if (!compositePainter) { compositePainter = new QPainter(mFbScreenImage); } rects = touched.rects(); for (int i = 0; i < rects.size(); i++) { compositePainter->drawImage(rects[i], *mScreenImage, rects[i]); } return touched; } 


рдирддреАрдЬрддрди, рдореЗрдореЛрд░реА рд╕рд╛рдЗрдЬрд╝-рдУрдирд░реНрд╕ рдХреЗ рд▓рд┐рдП рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд╕рдореНрдорд┐рд▓рд┐рдд рдЕрдиреБрдХреВрд▓рди рдХреЗ рд╕рд╛рде, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЫрд╡рд┐ 3.5 рдПрдордмреА рдХреА рд╣реЛ рдЧрдИ, рдЬреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ STM32F746 рдХреА рдореБрдЦреНрдп рдореЗрдореЛрд░реА рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ OpenCV рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдкрдиреЗ рджреВрд╕рд░реЗ рд▓реЗрдЦ рдореЗрдВ рдкрд╣рд▓реЗ рд╣реА рд▓рд┐рдЦрд╛ рд╣реИ, рдЗрд╕ рдмреЛрд░реНрдб рдореЗрдВ рд╣реИ:

  • 1 рдПрдордмреА рд░реЛрдо
  • 320 Kb рд░реИрдо
  • 8 рдПрдордмреА рдПрд╕рдбреАрдЖрд░рдПрдПрдо
  • 16 рдПрдордмреА QSPI

рдЪреВрдВрдХрд┐ QSPI рд╕реЗ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди OpenCV рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╣реА рдЬреЛрдбрд╝рд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ QSPI рдореЗрдВ рд╕рдВрдкреВрд░реНрдг Embox c Qt рдЫрд╡рд┐ рдХреЛ рд▓реЛрдб рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдФрд░ рддреВрдлрд╛рди, рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рддреБрд░рдВрдд QSPI рд╕реЗ рд╢реБрд░реВ рд╣реБрдЖ! рд▓реЗрдХрд┐рди OpenCV рдХреЗ рд╕рд╛рде, рдпрд╣ рдмрд╣реБрдд рдзреАрдореА рдЧрддрд┐ рд╕реЗ рдирд┐рдХрд▓рд╛ред



рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ - рдкрд╣рд▓реЗ рдЫрд╡рд┐ рдХреЛ рдХреНрдпреВрдПрд╕рдкреАрдЖрдИ рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВ, рдлрд┐рд░ рдЗрд╕реЗ рдПрд╕рдбреАрдЖрд░рдПрдПрдо рдореЗрдВ рд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рд╡рд╣рд╛рдВ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВред рдПрд╕рдбреАрдЖрд░рдПрдПрдо рд╕реЗ рдпрд╣ рдереЛрдбрд╝рд╛ рддреЗрдЬрд╝ рд╣реЛ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдХреНрдпреВрдИрдПрдордпреВ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИред



рдЕрдЧрд▓рд╛ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдмрд┐рдВрджреБ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдерд╛ - рдХреНрдпреЛрдВрдХрд┐ рдХреНрдпреВрдЯреА рдПрдиреАрдореЗрд╢рди рдореЗрдВ рд╡рд░реНрдЧреЛрдВ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХреА рдХреБрдЫ рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИред рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рджреГрд╢реНрдп рддреНрд╡рд░рдг рдирд╣реАрдВ рдорд┐рд▓рд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдХреНрдпреВрдЯреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рд▓реЗрдЦ рдореЗрдВ рджрд╛рд╡рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдПрдлрдкреАрдпреВ рдЯрдЪрд╕реНрдХреНрд░реАрди рдкрд░ "рдПрдиреАрдореЗрд╢рди рдЦреАрдВрдЪрдиреЗ" рдХреЗ рд▓рд┐рдП рдЧрддрд┐ рдореЗрдВ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡реГрджреНрдзрд┐ рджреЗрддрд╛ рд╣реИред рд╢рд╛рдпрдж рдореВрд▓рд╛рдВрдХ рдореЗрдВ рдмрд╣реБрдд рдХрдо рдлреНрд▓реЛрдЯрд┐рдВрдЧ рдкреЙрдЗрдВрдЯ рдЧрдгрдирд╛рдПрдБ рд╣реИрдВ, рдФрд░ рдпрд╣ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдкреНрд░рднрд╛рд╡реА рд╡рд┐рдЪрд╛рд░ рдПрд╕рдбреАрдЖрд░рдПрдПрдо рд╕реЗ рдлрд╝реНрд░реЗрдордмрдлрд╝рд░ рдХреЛ рдЖрдВрддрд░рд┐рдХ рдореЗрдореЛрд░реА рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдерд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 480x272 рдХрд╛ рд╕реНрдХреНрд░реАрди рдЖрдХрд╛рд░ рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди 272x272 рдерд╛ред рд╣рдордиреЗ A8R8G8B8 рд╕реЗ R5G6B5 рддрдХ рд░рдВрдЧ рдХреА рдЧрд╣рд░рд╛рдИ рдХреЛ рдХрдо рдХрд┐рдпрд╛, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдПрдХ рдкрд┐рдХреНрд╕реЗрд▓ рдХрд╛ рдЖрдХрд╛рд░ 4 рд╕реЗ 2 рдмрд╛рдЗрдЯреНрд╕ рддрдХ рдХрдо рдХрд░ рджрд┐рдпрд╛ред рд╣рдореЗрдВ рдлреНрд░реЗрдордмрдлрд╝рд░ рдХрд╛ рдЖрдХрд╛рд░ 272 * 272 * 2 = 147968 рдмрд╛рдЗрдЯреНрд╕ рдорд┐рд▓рд╛ред рдЗрд╕рдиреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рддреНрд╡рд░рдг рджрд┐рдпрд╛, рд╢рд╛рдпрдж рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп, рдПрдиреАрдореЗрд╢рди рд▓рдЧрднрдЧ рдЪрд┐рдХрдиреА рд╣реЛ рдЧрдпрд╛ред

рдЕрдВрддрд┐рдо рдЕрдиреБрдХреВрд▓рди рд░реИрдо рд╕реЗ рдПрдордмреЙрдХреНрд╕ рдХреЛрдб рдФрд░ рдПрд╕рдбреАрдЖрд░рдПрдПрдо рд╕реЗ рдХреНрдпреВрдЯреА рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдерд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣, Qt рдХреЗ рд╕рд╛рде рд╕реНрдЯреЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ Embox рдХреЛ рд▓рд┐рдВрдХ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо QSPI рдореЗрдВ рдЯреЗрдХреНрд╕реНрдЯ, рд░реЙрдбрдЯрд╛, рдбреЗрдЯрд╛ рдФрд░ bss рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕реЗрдЧрдореЗрдВрдЯ рдХреЛ рд░рдЦрддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдмрд╛рдж рдореЗрдВ рд╣рдо рдЙрдиреНрд╣реЗрдВ SDRAM рдореЗрдВ рдХреЙрдкреА рдХрд░ рд╕рдХреЗрдВред

 section (qt_text, SDRAM, QSPI) phdr (qt_text, PT_LOAD, FLAGS(5)) section (qt_rodata, SDRAM, QSPI) phdr (qt_rodata, PT_LOAD, FLAGS(5)) section (qt_data, SDRAM, QSPI) phdr (qt_data, PT_LOAD, FLAGS(6)) section (qt_bss, SDRAM, QSPI) phdr (qt_bss, PT_LOAD, FLAGS(6)) 

рдХреЛрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдХрд╛рд░рдг, ROM рд╕реЗ Embox рдХреЛ рднреА рдореВрд░реНрдд рддреНрд╡рд░рдг рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖред рдирддреАрдЬрддрди, рдПрдиреАрдореЗрд╢рди рдХрд╛рдлреА рд╕реБрдЪрд╛рд░реВ рд╣реЛ рдЧрдпрд╛:


рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рдЕрдВрдд рдореЗрдВ, рдПрдХ рд▓реЗрдЦ рддреИрдпрд╛рд░ рдХрд░рддреЗ рд╕рдордп рдФрд░ Embox рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдиреНрдпрд╛рд╕реЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реБрдП, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ Qt рдореВрд╡рдмреНрд▓реЙрдХ SDRAM рдореЗрдВ рдПрдХ рдлреНрд░реЗрдордмрдлрд╝рд░ рдХреЗ рд╕рд╛рде QSPI рд╕реЗ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлреНрд░реЗрдордмрдлрд╝рд░ рдХрд╛ рдЖрдХрд╛рд░ рдЕрдбрд╝рдЪрди рдерд╛! рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░, рд╢реБрд░реБрдЖрддреА "рд╕реНрд▓рд╛рдЗрдб рд╢реЛ" рдкрд░ рдХрд╛рдмреВ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдлреНрд░реЗрдордмрдлрд╝рд░ рдЖрдХрд╛рд░ рдХреА рдкреНрд░рддрд┐рдмрдВрдзрд╛рддреНрдордХ рдХрдореА рдХреЗ рдХрд╛рд░рдг 2 рдЧреБрдирд╛ рддрдХ рддреНрд╡рд░рдг рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ред рд▓реЗрдХрд┐рди рд╡рд┐рднрд┐рдиреНрди рдлрд╛рд╕реНрдЯ рдореЗрдореЛрд░реА рдореЗрдВ рдХреЗрд╡рд▓ рдПрдордмреЙрдХреНрд╕ рдХреЛрдб рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдХреЗ рдРрд╕рд╛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛ (рддреНрд╡рд░рдг 2 рд╕реЗ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд▓рдЧрднрдЧ 1.5 рдЧреБрдирд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛)ред

рдЗрд╕реЗ рдЦреБрдж рдХреИрд╕реЗ рдЖрдЬрдорд╛рдПрдВ


рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ STM32F7-Discovery рд╣реИ, рддреЛ рдЖрдк рдЦреБрдж Embox рдХреЗ рддрд╣рдд Qt рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рд╣рдорд╛рд░реА рд╡рд┐рдХрд┐ рдкрд░ рдпрд╣ рдХреИрд╕реЗ рдХрд░реЗрдВ, рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдирд┐рд╖реНрдХрд░реНрд╖


рдирддреАрдЬрддрди, рд╣рдо рдХреНрдпреВрдЯреА рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗ! рд╣рдорд╛рд░реА рд░рд╛рдп рдореЗрдВ, рдХрд╛рд░реНрдп рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреБрдЫ рд╣рдж рддрдХ рдЕрддрд┐рд░рдВрдЬрд┐рдд рд╣реИред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдкрдХреЛ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдХреА рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЛ рд╕рдордЭрдирд╛ рд╣реЛрдЧрд╛ред рдЕрдиреБрдХреВрд▓рди рдкрд░рд┐рдгрд╛рдо рдПрдХ рдкреНрд░рд╕рд┐рджреНрдз рддрдереНрдп рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЕрдбрд╝рдЪрди рдкреНрд░реЛрд╕реЗрд╕рд░ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдореЗрдореЛрд░реА рд╣реИред

рдЗрд╕ рд╕рд╛рд▓ рд╣рдо TechTrain рдЙрддреНрд╕рд╡ рдореЗрдВ рднрд╛рдЧ рд▓реЗрдВрдЧреЗред рд╡рд╣рд╛рдВ рд╣рдо рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛рдПрдВрдЧреЗ рдФрд░ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ рдФрд░ рд╣рдорд╛рд░реА рдЕрдиреНрдп рдЙрдкрд▓рдмреНрдзрд┐рдпреЛрдВ рдкрд░ рдХреНрдпреВрдЯреА, рдУрдкрдирд╕реАрд╡реА рдХреЛ рджрд┐рдЦрд╛рдПрдВрдЧреЗред

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


All Articles