Qt는 크로스 개발 환경 Tiny4412의 디버깅을 구축

머리말

최근에 Qt는 연구 Tiny4412로 프로그래밍. 첫 번째 단계는, 우선 좋은 크로스 개발 디버깅 환경을 구축해야합니다. 여러 가지 고민을 한 후, 마지막으로 거의 완료. 깔끔한 동안 이로써 노트, 요약으로, 블로그에 보냈다. 나는 또한 다른 사람이 재 항목을 피 구덩이에 이상이 희망.

또한 언급, 업계의 인기 경우 yocto / OpenEmbedded 프레임 워크, 많은 제조 업체 등 커널, rootfs, 툴 체인, GDB, 도서관, QT 라이브러리를 포함하여 분산 된 BSP 개발 보드를 (구축이 프레임 워크를 사용하여 (또한 조사 알게 네트워크 후) ), 사용자가 직접 같은 불필요한 시간 비용을 절감없는 의존성, 툴체인 버전 불일치 및 기타 문제로 자신의 환경을 구축 할 때 발생 제거 Qt는 크로스 개발 환경을 구축하기 위해 BSP를 기반으로 할 수 있습니다. 관련 사례 아주 많이, 컬럼 "참조 2 ~ 5"몇 가지 예입니다 (참조, 모든 증명되지 않은).

그러나 Tiny4412는 BSP의 경우 yocto를 제공하지 않은 것, 그것은 현재 법률의 경험이 아니라 경우 yocto 추정 추세에 대해 배울 수있는 시간입니다.

첫째, 실험 환경

1.1 가상 머신 환경

a) Vmware 판본 : Vmware Workstation 12.5.7

b)는 우분투 버전 : 우분투 16.04.4 LTS (나는 그물 JZ2440 백 질문 데이터 CD _20180516 버전을 사용하여 주소 : http://wiki.100ask.org/Download 다음를 찾아서 : 002_JZ2440 데이터 CD를 _20180516 (무료))

C) 커널 버전 : 4.13.0

D) GCC 버전 : 5.4.0

E) 버전 툴체인 :

팔 - 리눅스의 gcc 4.3.2

1.2 개발 환경 보드

1.2.1 하드웨어

개발 보드 : 친절한 팔 tiny4412, 바닥 : Tiny4412 / Super4412SDK 1611 코어 보드 : Tiny4412 버전 1412

1.2.2 소프트웨어

A) 커널 버전 (tiny4412 실시 디스크) : 리눅스 3.5-20170221

b)는 루트 파일 시스템 (tiny4412 실시 디스크) : rootfs_qtopia_qt4-20160514

둘째, 특정 프로세스

2.1 컴파일, 설치 QTE-4.8.5

참고 : 대상 - QTE-4.8.5 - 투 - hostpc.tgz 컴파일 할 때 CD tiny4412의 대상-QTE-4.8.5 - 투 - hostpc.tgz하지만 때문에 같은 내 우분투 버전의 친절한 컴파일 된 우분투 버전은 Qt는 제작자에 직접보고 될 것이다 :. Qt의 버전은 Qt를 설치 바이너리, 어쩌면 qmake에 경로를 확인할 수 없습니다 무효 빌드 버튼을 클릭 한 후 (그래서 압축 해제 후 사용하실 수 없습니다, 동일하지 않습니다 경로가 잘못?) 만 재건에 의해.

아암 QTE-4.8.5-20131207.tar.gz는 현상 시스템에 복사하고, 다음 명령 mobaXterm 직렬 터미널을 실행

팔 QTE-4.8.5-20131207.tar.gz xzvf 타르

CD를 팔 QTE-4.8.5

./build.sh

참고 : ./build.sh를 통해 처음 오류 : tslib 기능 테스트에 실패했습니다. 그러나 이후 ./build.sh 다시 실행하지만, 실수에보고되지 않습니다. 그 이유는 알 수없는 기원, 알 수 없습니다.

2.2 다운로드, 컴파일은 GDB-7.10 설치 한 후 컴파일하고 gdbserver를 설치

왜이 버전을 선택 하는가? 이전에 배운 웨이 동산과 함께 프로젝트를 모니터링하기 위해 세 개의 카메라를 훈련 리눅스 임베디드 때문에 GDB-7.10 성공적으로 원격 개발 보드를 통해 디버깅 환경 설정되었습니다 (사실, 버전 7.10을 선택할 때 또한 바지의 작은 자리입니다 미소).

2.2.1 다운로드, 컴파일, GDB-7.10을 설치 (다운로드 : http://ftp.gnu.org/gnu/gdb/gdb-7.10.tar.gz )

기계의 발전에 다운로드 한 GDB-7.10.tar.gz가 (에 / 홈 다운로드 가정하면 / 책 / 다운로드 /) 한 후 다음 명령 mobaXterm을 실행 시리얼 터미널 :

xzvf GDB 7.10.tar.gz합니다

CD /home/book/Downloads/gdb-7.10

MKDIR 빌드 && CD 빌드

../configure --target = 팔 리눅스 --prefix = / usr / 지방 / 팔의 GDB-7.10 --with-파이썬

참고 : 당신은 또한 추가 할 수 있습니다 : -와 - 해외 거주자 --includedir = / 가정 / 책 / / 해외 거주자-2.2.9 / 빈 / 포함이 --libdir = / 홈 / 도서 / 다운로드 / 해외 거주자-2.2.9 다운로드 / 빈 / lib에,주의 사항은 아래를 참조하십시오

하다

설치 만든다

수출 PATH는 $ PATH를 = : /usr/local/arm-gdb-7.10

(이 문장은 / etc / 환경이나 ~에 추가 할 수 있습니다. / bashrc에, $ PATH 환경 변수에 변경 사항을 저장합니다)

주 1 : 실시 구성-7.10을 gdb를 할 때 (다운로드하고 설치해야 할 수도 있습니다 --with-파이썬 옵션에 가입 python2.7-dev에 ), 또는 QT 제작자 디버깅을 시작 할 때, 오류가있을 수 있습니다 :

        영상

참고 2 : 구성 옵션 --with-파이썬 추가 한 경우,보고 :

         python2.7를 확인하지 ... 더

         구성 : 오류 : 파이썬이 없거나 사용할 수 없게됩니다

         이 솔루션은 다음과 같습니다 다운로드하고 설치-dev에 python2.7 : APT-GET은 python2.7-dev에 설치, 설치가 완료된 후, 당신은 때 dpkg -l 할 수 | 설치가 완료되었는지 확인하려면 그렙 python2.7-dev에        

경우 설치 컴파일 한 후 gdb를-7.10 : 주 3 경고 : 시간 오류가 응용 프로그램 출력에서, Qt는 제작자 디버깅을 시작하기 위해 할 수있는의 설명은 구문 분석 XML을 대상으로하지, XML 지원이 
         컴파일 장애 시간, 최초의 다운로드, 컴파일 있었다 설치 해외 거주자 ( http://sourceforge.net/projects/expat/ ) :

         ./configure를 --prefix = $ PWD / 빈

          MKDIR 함

          && 설치 할 수 있도록

          그런 다음 재 컴파일, 설치 다음과 같은 옵션을 추가도 할 때 구성 (GDB-7.10,하지만 - --includedir-해외 거주자 = / 홈 / 도서 / 다운로드 / 해외 거주자-2.2.9 / 빈 /를 포함와   
          --libdir = / 홈 /book/Downloads/expat-2.2.9/bin/lib -v)

4 주 : 오류가 다음 메이크업을 실행하면 :

         libexpat 확인 ... 아니 (캐시)

         구성 : 오류 : 해외 거주자가 없거나 사용할 수 없게됩니다

         解决办法是:删除gdb-7.10整个文件夹,然后重新解压gdb-7.10.tar.gz,编译、安装。

         原因是:

         为了加快速度,configure会把上次的检查结果作为一个cache变量(名字是ac_cv_libexpat)缓存到gdb/configure.cache中,而本次configure时,会先从

         这个文件中查该cache变量,如果找不到,才会真正去检查libexpat这个库是否存在。所以,应该清除这个cache文件,强制configure去执行真正的检查。

2.2.2 编译、安装gdbserver

在mobaXterm串口终端执行以下命令:

cd /home/book/Downloads/gdb-7.10/gdb/gdbserver

mkdir build && cd build

../configure --target=arm-linux  -host=arm-linux

make CC=arm-linux-gcc

完成之后,会在build目录下生成gdbserver可执行文件。把它拷贝到开发板的/usr/bin里(可以用ftp或者nfs,过程略):

2.3 把根文件系统拷贝解压到开发机上

把Tiny4412随机光盘中的rootfs_qtopia_qt4-20160514.tgz拷到开发机上(假设拷贝到/home/book/Downloads/friendly_arm/tiny4412/linux_rootfs/),然后执行:

tar xzvf rootfs_qtopia_qt4-20160514.tgz

2.4 下载、安装Qt-5.9.0(下载地址:https://download.qt.io/archive/qt/5.9/5.9.0/qt-opensource-linux-x64-5.9.0.run

为什么选择这个版本?因为网上有很多成功案例,用这个版本搭建了交叉调试平台,有经验可借鉴。

把qt-opensource-linux-x64-5.9.0.run下载到开发机里,然后在mobaXterm串口终端执行以下命令:

chmod +x qt-opensource-linux-x64-5.9.0.run

./qt-opensource-linux-x64-5.9.0.run

然后按照安装向导的提示,一步步做即可(注:在“选择组件”这一步,把Qt5.9.0下面的所有组件都选上,保险起见)

2.5 打开qt-creator,进入Tools==>Options进行配置

2.5.1 添加device

영상

영상

영상

영상

영상

영상

영상

영상

영상

2.5.2 添加Qt version

영상

2.5.3 添加compiler

영상

2.5.4 添加debugger

영상

2.5.5 添加kit

영상

2.5.6 添加环境变量,以支持触摸屏操作

方法1)修改开发板上的/etc/profile,(仿照/bin/setqt4env的内容)添加以下环境变量:

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

export QWS_DISPLAY=:1

export QWS_KEYBOARD=TTY:/dev/tty1

export QWS_MOUSE_PROTO="Tslib MouseMan:/dev/input/mice"

export TSLIB_CALIBFILE=/etc/pointercal

export TSLIB_CONFFILE=/etc/ts-mt.conf

export TSLIB_PLUGINDIR=/usr/lib/ts

export TSLIB_TSDEVICE=/dev/touchscreen-1wire

방법 2) == 프로젝트로, QT 제작자 기계를 개발> 빌드 및 실행 ==> tiny4412 ==> 실행 ==>이 실행 구성을위한 기본 환경, 환경 변수를 추가 :

영상

"SFTP 초기화 실패 : 서버는 SFTP 서브 시스템을 시작할 수 없습니다"문제은 / usr / local / etc / sshd_config에, 디버그 시간을 해결하기 위해 2.5.7 수정 개발 보드

서브 시스템 SFTP는 / usr / libexec 디렉토리 / SFTP 서버

읽기 :

서브 시스템 SFTP를 / usr / 지방 / libexec 디렉토리 / SFTP 서버

2.6 Qt는 제작자 프로그램은 새로운 위젯 테스트 테스트를 만든 다음 몇 가지 설정을 할 수

2.6.1 수정 "test.pro"파일, 다음 두 줄을 추가합니다 :

프로그램 개발 보드에 지정된 target.path = / 옵션 # 설치 경로

INSTALLS + = 목표

영상

2.6.2 进入 프로젝트 ==> 빌드 및 실행 ==> Tiny4412 ==> 실행 설정

영상

다음과 같이이 시점에서, Tiny4412의 Qt 개발 환경은, 최종적으로 완성 된 구조를 디버깅하는 효과가 있습니다 :

1) 시작 디버깅 :

영상

2) 정지 디버깅 :

영상

셋째, 표준 물질

1) "Tiny4412 사용자 설명서의"

2) QtCreator + ARM 개발 및 온라인 디버깅

3) imx6을 구축 할 경우 yocto 전체 레코드 (L4.1.15_2.0.0) 개발 환경

4) QtCreator + gdbserver 원격 디버깅

5) 개발 및 마이그레이션 Qt5 NXP iMX8에 실시

추천

출처www.cnblogs.com/normalmanzhao2003/p/12445331.html