프로젝트 대표이미지
프로젝트 제목 없음
쌀쌀이 생성일2022. 10. 5 조회1327 좋아요0 스크랩0 댓글0
 
첨부 파일 비공개 기술 미판매 유사 개발 의뢰 미수락

퀘스트 5/7 - QT Layer 추가 및 빌드

2020. 5. 24 (일) 02:04 강성* 조회 254 좋아요 0 스크랩 0 댓글 0

------------------------------------------------------------

1. bitbake를 실행하여 성공한 결과 화면 제출

------------------------------------------------------------

 

------------------------------------------------------------

2. Desktop에서 Hello world 예제 실행 화면 제출

------------------------------------------------------------

 

------------------------------------------------------------

3. 보드 LCD에 출력된 Hello world 예제 실행 화면 제출

------------------------------------------------------------

------------------------------------------------------------

4.  Hello World 예제 소스코드 제출

------------------------------------------------------------

main.cpp

#include <QGuiApplication>
#include <QQmlApplicationEngine>

int main(int argc, char *argv[])
{
    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);

    QGuiApplication app(argc, argv);

    QQmlApplicationEngine engine;
    const QUrl url(QStringLiteral("qrc:/main.qml"));
    QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
                     &app, [url](QObject *obj, const QUrl &objUrl) {
        if (!obj && url == objUrl)
            QCoreApplication::exit(-1);
    }, Qt::QueuedConnection);
    engine.load(url);

    return app.exec();
}

 

main.qml

import QtQuick 2.11
import QtQuick.Window 2.11

Window {
    visible: true
    width: 480
    height: 800
    color: "#24ca30"
    title: qsTr("Quest5 : Hello World")

    Rectangle {
        id: rectangle
        x: 26
        y: 220
        width: 426
        height: 286
        color: "#fce94f"
        border.color: "#e53434"
    }

    TextInput {
        id: textInput
        x: 79
        y: 282
        width: 318
        height: 20
        color: "#e43535"
        text: qsTr("STM32MP157C-DK2")
        font.pixelSize: 20
        verticalAlignment: Text.AlignVCenter
        font.weight: Font.Bold
        horizontalAlignment: Text.AlignHCenter
    }

    TextInput {
        id: textInput1
        x: 173
        y: 444
        width: 167
        height: 0
        text: qsTr("Hello World !!!")
        font.bold: true
        font.pixelSize: 31
    }


}

 

 

-------------------------------------------------------------------------------------------------------------------------------------------------

----   참고 사항 

-------------------------------------------------------------------------------------------------------------------------------------------------

1. meta-qt5 build

 

Qt meta-layer check
 $> DISTRO=openstlinux-weston MACHINE=stm32mp1 source layers/meta-st/scripts/envsetup.sh
 $> bitbake-layers show-layers

    (meta-qt5 가 있는지 확인한다)

 

st-example-image-qt 이미지 빌드
       $> DISTRO=openstlinux-eglfs MACHINE=stm32mp1 source layers/meta-st/scripts/envsetup.sh
       $> bitbake st-example-image-qt

 

  (120G SDD(10G 여유)를 사용했는데, 계속해서 컴퓨터 멈춤현상 발생함.

  250G SDD로 변경해서 모든 tool을 새로 설치하고 다시 Build하니 겨우 완료함.)

 

# Flashing the built image

(flash할 파일 위치(*.tsv) 는 아래에 위치함.)

/home/kasuh/STM32MPU_Workspace/Distribution-Package/openstlinux-20-02-19/build-openstlinuxeglfs-stm32mp1/tmp-glibc/deploy/images/stm32mp1/flashlayout_st-example-image-qt/FlashLayout_sdcard_stm32mp157c-dk2-basic.tsv

 

$> export PATH=/home/kasuh/STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin:$PATH

$> STM32_Programmer_CLI --h
   (command & version check)

 

(보드 boot mode 변경 : "00")

$> STM32_Programmer_CLI -l usb
   

$> STM32_Programmer_CLI -c port=usb1 -w flashlayout_st-example-image-qt/FlashLayout_sdcard_stm32mp157c-dk2-basic.tsv

   --> 완료하면 화면이 이렇게 뜬다.

 

 보드에 minicom으로 접속해서   psplash-drm-quit  (DRM을 해제) 실행 하면 화면이 꺼진 것처럼 보임 : 당황하지 않기....)

 

 

2. Qt Project 생성 및 Design

 

Qt Creator를 설치하는데 많은 시간을 소비함. (5.11.3 설치 버전이 보이지 않아 헤멤. maintainace tool을 사용하여 설치함.)

  

main.cpp와 main.qml이 생성됨.

main.qml을 직접 edit해도 되지만, run한 화면과 보드 LCD에 display를 동일하게 하기 어려움.

쉽지 않으니 design을 사용하여 화면 design하면 좋음. 

 

3.  보드 LCD에 출력

 

Qt Project를 Cross Compile 수행

 

$> DISTRO=openstlinux-eglfs MACHINE=stm32mp1 source layers/meta-st/scripts/envsetup.sh

$> cd ~/Qt_prj

$> devtool add qthello3 Test1/

 

      NOTE: Recipe /home/kasuh/STM32MPU_Workspace/Distribution-Package/openstlinux-20-02-19/build-openstlinuxeglfs-  stm32mp1/workspace/recipes/qthello3/qthello3.bb

 

$> devtool build qthello3
  or ($> bitbake qthello3 )

 

보드에 실행 파일 전송하기 (전송된 파일이 어디에 위치하는지 몰라서 몇일을 고민함.)

 

$> devtool deploy-target -s qthello3 root@192.168.0.14

 

~~~~~(메세지) ~~~~~~~~

./opt/Test1/bin/Test1
NOTE: Successfully deployed /home/kasuh/STM32MPU_Workspace/Distribution-Package/openstlinux-20-02-19/build-openstlinuxeglfs-stm32mp1/tmp-glibc/work/cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi/qthello3/1.0-r0/image
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

--> 보드에 전송된 실행 파일(Test1)은 /opt/Test1/bin에 위치한다.

 

root@stm32mp1:~# psplash-drm-quit   (보드)

root@stm32mp1:~# /opt/Test1/bin/Test1  (보드)

 

<끝>