Linux 개발 보드에서 실행한 첫 번째 Qt 프로그램

개요: Linux를 배우는 것은 어렵지 않지만 올바른 튜토리얼을 찾는 것이 어렵고 아무도 빠르게 안내해 주지 않습니다. 개발보드 사서 거기다가 재먹으려고 올려놨는데 영상도 안보이고 문서도 이해가 안되네요 너무 어렵네요! 이 글은 Punctual Atomic Linux 개발 보드에서 qt 프로그램을 실행하는 기본 단계를 이해하기 쉽게 설명하고 초보자가 반나절 만에 첫 번째 프로그램을 실행할 수 있도록 노력합니다.

硬件:正点原子 Linux mini开发板
软件:win10,vmware,ubuntu,qtcreator

실행 효과는 아래 그림과 같이 serialportPunctual Atom의 기본 UI 인터페이스를 기반으로 루틴을 실행하는 것입니다.


초심자 Linux 임베디드 개발 경험에 대해 이야기하자면 STM32를 배울 때 Keil 또는 IAR 통합 개발 환경에 익숙하고 간단한 레지스터를 사용하여 특정 핀을 제어할 수도 있습니다. 리눅스 개발을 시작하고 나서 처음에는 수십 개의 G 설치 이미지가 무서웠고, 리눅스를 컴파일하는 것은 매우 복잡하고 어렵다는 것을 느꼈습니다. 또한 수백 개의 문자로 구성된 조밀한 명령 배열이 있어 그래픽 개발에 익숙한 우리에게는 너무 어렵습니다. 판매자의 수십 시간 분량의 동영상도 있으며, 동영상은 드라이버 개발, 애플리케이션 개발, Qt 개발 등 여러 문제로 나뉩니다.

영상 하나하나가 길고 어렵네요 원래 해보고싶어서 보드를 샀는데 영상을 너무 많이 보고나서 한순간에 배우고싶지 않아서 입문부터 포기까지 보드 재를 먹기 위해 거기에 두었습니다. 이 기사의 목적은 모든 사람들이 비디오를 제쳐두고 이 10시간짜리 비디오를 기사로 압축하여 임베디드 Linux 개발의 재미를 빠르게 경험할 수 있도록 하는 것입니다! 물론 개발자분들이 빠르게 재미를 느끼실 수 있도록 퀵튜토리얼도 함께 올려드리니 효과가 더 좋을 것 같아요!

1. 다운로드 정보

우선 시간 엄수 아토믹 포럼에 가셔서 정보를 다운받으세요 영상 다운되지 않도록 주의하세요 방송국 B에서 언제 어디서든 영상을 볼 수 있습니다 영상 다운받는데 지루할 사람은 없을거에요!

원하는 데이터를 다운로드 할 수 있습니다.데이터 대부분이 바이두 네트워크 디스크입니다.멤버십을 열지 않으면 매우 느립니다.데이터 다운로드 시 임시 멤버십을 구입하는 것이 좋습니다.데이터 다운로드 후, 다음 단계로 진행합니다.

2. 가상 머신 설치

가상 머신 설치는 기본적으로 Punctual Atom의 대부분의 PDF 자습서에서 다루므로 여기서 더 말할 필요가 없습니다. 기사가 명확하지 않은 경우 스테이션 B로 이동하여 동영상을 볼 수도 있습니다.

초보자분들은 꼭 읽어보시길 권장하며, 잘못 설치한 경우 삭제하고 다시 설치해도 큰 문제가 되지 않습니다.

우분투 설치 단계에서 Punctual Atom에서 패키징한 qtcreator의 이미지를 직접 다운로드 받는 것을 강력히 권장하며 , 이미지 설치 후에는 단계별로 설정할 필요가 없습니다. 첫 번째 Linux 프로그램을 빠르게 실행해야 하는 학생들의 경우 점점 더 혼란스러워지는 학습의 함정을 피할 수 있습니다. 이러한 지루한 단계를 건너뛰면 글로벌 관점에서 전체 개발 프로세스를 빠르게 이해할 수 있습니다.

이것은 무엇을 의미 하는가? 즉, 새로 설치한 우분투는 어떠한 환경이나 소프트웨어도 없고, 직접 설치해야 하므로 더 번거롭습니다. 하지만 다른 사람의 컴퓨터에서 시간을 엄수하는 원자 우분투 시스템을 사용할 수 있습니다. 그는 이 시스템을 당신을 위해 패키지로 만들었습니다. 당신은 그의 패키지 시스템을 당신의 가상 머신에 설치하기만 하면 됩니다. 어때요? 당신의 컴퓨터에 다른 사람의 컴퓨터 시스템도 설치할 수 있다는 것이 놀랍지 않습니까? 이 시스템은 어디에 있습니까?

이렇게 다운로드

그런 다음 여기의 지침에 따라 Punctual Atomic에서 패키지로 제공하는 시스템을 설치하십시오.

파일 이름: [Punctual Atom] I.MX6U 가상 머신 참조 설명서 V1.3.pdf

3. 네트워크 환경 구성

ubutn을 설치한 후 인터넷에 액세스하지 못할 수 있습니다. 사람마다 이 문제가 다르게 발생합니다. 네트워크 연결이 정상적으로 작동하도록 Windows, ubuntu 및 개발 보드를 연결하려면 Punctual Atomic의 자습서를 따르는 것이 좋습니다. [Punctuality Atom] I.MX6U 네트워크 환경 TFTP&NFS 구성 매뉴얼 V1.3.1.pdf 를 참조할 수 있습니다.

문서가 이해가 안 되시면 동영상도 있으니 차근차근 따라하시면 ​​됩니다.

따라서 네트워크에 대해 걱정할 필요가 없습니다.

넷째, qtcreator를 설치합니다.

또한 qtcreator 소프트웨어를 설치하고 다음을 참조할 수 있습니다. [Punctuality Atom] I.MX6U Embedded Qt Development Guide V1.1.pdf

우분투에 qtcreator 소프트웨어를 설치한 후 Windows에서와 같이 프로그램을 작성한 다음 우분투에서 실행할 수 있습니다. 그러나 우리의 목적은 qt 소프트웨어가 우리 팔 개발 보드 아래에서 실행되도록 하는 것입니다. 이때 자연스럽게 arm 개발 보드에서 실행할 수 있는 코드로 프로그램을 컴파일하기 위해 ubuntu에 컴파일 도구를 설치하는 것을 생각하게 됩니다! 이것을 "크로스 컴파일 체인"이라고 합니다. 크로스 컴파일러에서 "교차"는 한 아키텍처에서 다른 아키텍처의 코드를 컴파일하는 것을 의미하며, 이는 두 아키텍처를 "교차"하는 것과 같습니다.

다섯, qt 크로스 컴파일러 설치

[Punctual Atom] I.MX6U Factory System Qt Cross Compilation Environment Build V1.6.pdf 1 장의 내용, 크로스 컴파일러 설치, 이것을 설치해야만 우분투에서 컴파일하고 개발할 수 있습니다. 보드에서 실행되는 암 코드에서. 이 단계를 수행해야 합니다. 그리고 그녀의 튜토리얼을 단계별로 따르십시오.

5.1 컴파일러 복사

개발 보드 CD A-기본 데이터->5, 개발 도구->1, 크로스 컴파일러->를 넣습니다.fsl-imx-x11-glibc-x86_64-meta- toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0.sh

Ubuntu 가상 머신에 복사합니다.

복사 소프트웨어는 소프트웨어를 사용할 수 MobaXterm있으며 이 소프트웨어의 사용은 이 문서를 참조할 수 있습니다. 2022년 첫 번째 기사, 만능 터미널 아티팩트 MobaXterm

아래 그림과 같이 이 기사에서는 크로스 컴파일 도구를 Ubuntu 가상 머신에 복사했습니다.

다음 명령을 실행하여 스크립트의 권한을 수정합니다 권한을 수정한 후 스크립트의 색상 표시가 변경되어 수정이 성공했음을 나타내는 것을 확인할 수 있습니다.

chmod u+x fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0.sh

스크립트를 직접 실행하여 크로스 컴파일 도구를 설치하고 Enter 키를 두 번 눌러 확인하고 사용자 암호를 입력합니다 . 이 설치 디렉터리는 스크립트에서 지정한 기본 설치 디렉터리이며, 이 설치 디렉터리에 따라 커널 컴파일 환경의 후속 크로스 컴파일이 수행됩니다.

5.2 환경 변수 구성

Linux에서 실행 파일을 실행하면 해당 디렉토리에서 터미널을 열려면 마우스 오른쪽 버튼을 클릭하고 실행을 ./지시해야 한다는 것을 알고 있습니다. 그러면 다른 폴더에서 지정된 프로그램을 실행하는 것은 어떻습니까?

물론 " 환경 변수 "를 사용할 수 있습니다. 맞아요, 리눅스에서도 환경변수가 필요합니다! 그 기능은 창 아래와 정확히 동일합니다. 매우 긴 디렉토리를 생략하는 것과 같습니다. 환경 변수가 없기 전에 입력해야 하는 명령은 다음과 같습니다.

/aaa/bbb/ccc/ddd/eee/fff/hhh/xxx.sh

환경 변수를 얻은 후 입력한 지침은 다음과 같습니다. 이것이 차이점입니다. 환경 변수는 xxx.sh 명령을 호출하는 위치에 관계없이 특정 폴더에 있는 프로그램이라는 것을 시스템에 알립니다.

xxx.sh

환경변수를 설정하는 방법 source /opt......은 프로젝트 디렉토리에서 우클릭하여 터미널을 연 후 환경변수를 실행하는 것이다.

source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi 

다음으로 env명령어를 사용하여 환경변수를 확인하고, 해당 단어의 설정 옵션이 나타난 후 실행이 가능합니다. 방금 설치한 "Cross Compilation Toolchain"을 환경 변수에 설정했다는 의미입니다.

명령을 사용 arm-poky-linux-gnueabi-gcc -v하여 환경 변수가 적용되었음을 나타내는 gcc 버전을 확인합니다.

자, 지금까지 qt 크로스 컴파일러가 설치되었습니다.

5.3 크로스 컴파일 환경 설치

위에서 방금 우분투에 크로스 컴파일러를 설치했는데 Qt 애플리케이션을 컴파일하고 개발 보드에서 실행하려면 크로스 컴파일 환경을 구축 해야 하며 ARM 플랫폼의 크로스 컴파일러로 컴파일된 프로그램은 다음을 수행 할 수 있습니다 . 보드에서 실행되는 i.MX6U에서 개발됩니다.

가장 중요한 것은 Qt Creator의 구성에서 키트를 구성하는 것입니다. 개발 및 컴파일 환경 키트인 키트 번역 키트는 다른 플랫폼용 키트를 빌드할 수 있고 다른 키트로 다른 플랫폼용 응용 프로그램을 컴파일할 수 있으며 교차 검증도 가능합니다. Qt의 플랫폼 기능! Android 제품군이 설치되어 있으면 휴대전화에서 qt 프로그램을 실행할 수도 있습니다.

참조 문서: [Punctuality Atom] I.MX6U 팩토리 시스템 Qt 크로스 컴파일 환경 빌드 V1.6.pdf 섹션 2.3.

여기에서 스크립트에서 활성화된 환경 변수를 설정하는 명령을 작성해야 합니다. 먼저 이 스크립트를 엽니다.

sudo vi /opt/Qt5.12.9/Tools/QtCreator/bin/qtcreator.sh

qtcreator.sh아래 그림과 같이 첫 번째 줄에 다음 명령을 삽입합니다 .

source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

스크립트 파일(ESC : wq)을 저장합니다. 다음 명령을 사용하여 Qt Creator를 엽니다. "&"의 역할은 백그라운드에서 실행되는 것입니다.

/opt/Qt5.12.9/Tools/QtCreator/bin/qtcreator.sh &

5.4 키트 설치

qtcreater 소프트웨어를 설치하면 기본적으로 하나의 키트만 있고 튜토리얼에 따라 다른 두 키트를 빌드합니다. 그 중 ATK-I.MX6U는 큰 imx6ull ARM 플랫폼에서 실행하는 데 사용되는 키트입니다. IMX6U-rsync는 네트워크 디버깅 및 프로그램을 개발 보드로 다운로드하기 위한 키트입니다.qtcreater에서 컴파일한 후 클릭하여 실행하면 프로그램이 개발 보드의 메인에 직접 표시됩니다.

기본적으로 Qt Creator에서 sftp 또는 rsync는 프로그램을 보드로 보내는 데 사용됩니다. punctual atomic I.MX6U 팩토리의 Qt 파일 시스템(파일 시스템 V1.9 이상)에 rsync 명령이 있기 때문에 Qt 원격 디버깅에 이 방법을 사용하는 것이 매우 편리합니다. 먼저 현재 팩토리 파일 시스템의 버전 ​​번호를 확인하고 팩토리 시스템에서 다음 명령을 실행해야 합니다.

cat /etc/version

파일 시스템이 V1.9가 아니거나 rsync 명령을 지원하지 않는 경우 네트워크 디스크로 이동하여 최신 공장 시스템을 다운로드하고 최신 시스템을 사용하십시오.

개발 보드 고정 IP 설정

LAN8720PHY 네트워크 칩에는 MAC 주소가 없기 때문에 시스템 시작 시 네트워크 사용을 위해 임의의 MAC 주소가 생성됩니다. MAC 주소가 생성될 때마다 네트워크가 획득한 IP는 네트워크를 켤 때마다 고정되지 않습니다. (버전 v2.3의 파일 시스템은 임의의 MAC 주소를 수정했으며 부팅할 때마다 변경되지 않습니다. 최신 파일 시스템으로 업데이트하십시오.) 따라서 변경되지 않을 고정 IP를 설정해야 합니다. MAC 주소 변경으로 인해 ip 메서드 디버깅이 수정되었습니다. 개발 보드는 시작될 때 자동으로 ip를 얻습니다.가장 쉬운 방법은 ip를 직접 설정하는 것입니다. 이런 식으로 그림과 같이 공장 파일 시스템의 /etc/rc.local 파일에 다음 파일을 추가합니다.

vi /etc/rc.local

다음 내용을 추가하고 사용하는 라우터에 따라 해당 네트워크 세그먼트의 IP 주소를 설정하십시오. 다음 그림은 eth0의 고정 IP 주소를 보여줍니다. 이 ip는 다른 기기의 ip와 충돌하니 주의하세요!

PATH=/sbin:/bin:/usr/sbin:/usr/bin
ifconfig eth0 192.168.1.115 netmask 255.255.255.0
route add default gw 192.168.1.1
echo "nameserver 114.114.114.114" > /etc/resolv.conf

이런 식으로 개발 보드가 네트워크 케이블에 연결되고 전원이 켜질 때마다 개발 보드의 IP 주소는 192.168.1.115.

추가하고 [Punctuality Atom] I.MX6U Factory System Qt Cross Compilation Environment Building V1.6.pdf 2.5.1 섹션을 참조하여 rsync 모드 Qt 원격 디버깅 키트 설치를 완료합니다.

여섯째, 실제 전투

엄정 원자와 함께 제공되는 루틴을 엽니다. 여기에 Qt/03/03_serialport의 예가 있습니다. 두 번 클릭하십시오 03_serialport.pro.

개봉 후 IMX6U-rsync 키트 선택

열면 소프트웨어가 자동으로 컴파일되며 일반적으로 오류가 없습니다. 왼쪽 하단 모서리에 있는 녹색 삼각형을 클릭하여 컴파일하고 실행하면 됩니다.

그런 다음 개발 보드에서 마법의 장면을 볼 수 있습니다.호스트 컴퓨터가 개발 보드로 실행되고 개발 보드의 직렬 포트에 연결하여 즐겁게 플레이할 수 있습니다.

참고 : 개발 보드에는 punctual atomic boot qt 데스크탑이 있으므로 표시하지 못하도록 할 수 있습니다. 다음을 참조하십시오.

최종 효과:

어때요? 왜 이러는지 모를 수도 있지만 새로운 것을 배우는 가장 빠른 방법은 먼저 플레이하는 것이고 역학습은 학습에 대한 흥미를 높일 수 있습니다!

추천

출처blog.csdn.net/qq_39400113/article/details/125614193