Linux開発ボードで実行した最初のQtプログラム

要約:Linuxを学ぶことは難しくありませんが、適切なチュートリアルを見つけることは難しく、誰もあなたをすぐに案内しません。開発ボードを購入した後、灰を食べるためにそこに置いたのですが、ビデオが見れず、ドキュメントが理解できません。難しすぎます!この記事では、Punctual Atomic Linux開発ボードでqtプログラムをわかりやすく実行するための基本的な手順を説明し、初心者が最初のプログラムを半日で実行できるように努めています。

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

実行中の効果を次の図に示します。これはserialport、PunctualAtomのデフォルトのUIインターフェイスに基づいてルーチンを実行することです。


Linux組み込み開発の初心者の経験について話しましょう。STM32を学ぶとき、私はKeilまたはIAR統合開発環境に精通しており、単純なレジスターを使用して特定のピンを制御することもできます。Linuxの開発を始めてから、最初は何十ものGインストールイメージに怯えていたのですが、Linuxのコンパイルは非常に複雑で難しいと感じました。何百もの文字を含むコマンドの密集した配列もあります。これは、グラフィカルな開発に慣れている私たちにとっては難しすぎます。売り手からのビデオも数十時間あり、ビデオはいくつかの問題に分けられます:ドライバー開発、アプリケーション開発、Qt開発など。

すべての動画が長くて難しいです。もともとは再生したかったのでボードを購入しましたが、たくさんの動画を見た後、一瞬で習いたくなかったので、エントリーからあきらめまでボード灰を食べるためにそこに置かれました。この記事の目的は、誰もがビデオを脇に置いて、この10時間のビデオを記事にまとめることができるようにすることです。これにより、組み込みLinux開発の楽しさをすばやく体験できます。もちろん、オフィシャルは開発者がすぐに楽しみを体験できるように簡単なチュートリアルも公開することをお勧めしますので、効果はもっと良くなると思います!

1.情報をダウンロードする

まず、時間厳守のアトミックフォーラムにアクセスして、情報をダウンロードします。ビデオをダウンロードしないように注意してください。ステーションBでは、いつでもどこでもビデオを見ることができます。ビデオをダウンロードするのにそれほど退屈することはありません。

必要なデータをダウンロードできます。ほとんどのデータはBaiduネットワークディスクです。メンバーシップを開かないと、非常に遅くなります。データをダウンロードするときに一時的なメンバーシップを購入することをお勧めします。データをダウンロードした後、次のステップに進みます。

2.仮想マシンをインストールします

仮想マシンのインストールは、基本的にPunctual AtomのほとんどのPDFチュートリアルで説明されているため、ここで詳しく説明する必要はありません。記事が明確でない場合は、ステーションBに移動してビデオを視聴することもできます。

初心者の方はよくお読みになることをお勧めします。間違ってインストールされている場合は、削除して再度インストールするのは大したことではありません。

ubuntuをインストールするステップでは、Punctual Atomによってパッケージ化されたqtcreatorのイメージを直接ダウンロードすることを強くお勧めします。イメージをインストールした後、段階的に構成する必要はありません。最初のLinuxプログラムをすばやく実行する必要がある学生にとって、ますます混乱する学習の罠を回避することができます。これらの面倒な手順をスキップすることで、グローバルな視点から開発プロセス全体をすばやく理解できます。

これは何を意味するのでしょうか?つまり、新しくインストールしたubuntuには環境やソフトウェアがないため、自分でインストールする必要があり、面倒です。しかし、他の人の時間厳守のアトミックUbuntuシステムを自分のコンピューターで使用できます。彼はこのシステムをパッケージ化しました。パッケージ化したシステムを仮想マシンにインストールするだけで、どうでしょうか。他人のコンピュータシステムを自分のコンピュータにインストールできるのは驚くべきことではありませんか。このシステムはどこにありますか?

このようにダウンロードしてください

次に、こちらの手順に従って、PunctualAtomicによってパッケージ化されたシステムをインストールします。

ファイル名:[PunctualAtom]I.MX6U仮想マシンリファレンスマニュアルV1.3.pdf

3.ネットワーク環境を構成します

ubutnをインストールすると、インターネットにアクセスできなくなる場合があります。この問題の発生方法は人によって異なります。PunctualAtomicのチュートリアルに従って、Windows、ubuntu、および開発ボードを接続し、ネットワーク接続を正常に機能させることをお勧めします。以下を参照してください。[時間厳守アトム]I.MX6Uネットワーク環境TFTP&NFS構築マニュアルV1.3.1.pdf

ドキュメントがわからない場合は、ビデオもあります。ビデオをステップバイステップでたどることができます。

したがって、ネットワークについて心配する必要はありません。

第四に、qtcreatorをインストールします

qtcreatorソフトウェアもインストールしてください。以下を参照してください。[PunctualityAtom]I.MX6UEmbeddedQt開発ガイドV1.1.pdf

qtcreatorソフトウェアをubuntuにインストールした後、Windowsのようにプログラムを作成し、ubuntuで実行できます。しかし、私たちの目的は、qtソフトウェアを私たちのアーム開発ボードの下で実行させることです。現時点では、当然、ubuntuの下にコンパイルツールをインストールして、プログラムをarm開発ボードで実行できるコードにコンパイルすることを考えています。これは「クロスコンパイルチェーン」と呼ばれます。クロスコンパイラでの「クロス」とは、1つのアーキテクチャで別のアーキテクチャのコードをコンパイルすることを意味します。これは、2つのアーキテクチャを「クロス」することと同じです。

5、qtクロスコンパイラをインストールします

[Punctual Atom] I.MX6U Factory System Qtクロスコンパイル環境ビルドV1.6.pdf1章の内容、クロスコンパイラをインストールします。これをインストールした後、ubuntuでコンパイルして開発できます。ボード上で実行されているアームコードで。この手順を実行する必要があります。そして、彼女のチュートリアルをステップバイステップで実行します。

5.1コンパイラのコピー

開発ボードCDを配置-基本データ->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キーを2回押して確認してから、ユーザーパスワードを入力しますこのインストールのディレクトリは、スクリプトで指定されたデフォルトのインストールディレクトリであり、その後のカーネルコンパイル環境のクロスコンパイルは、このインストールディレクトリに従って操作されます。

5.2環境変数の構成

Linuxでは、実行可能ファイルを実行する場合、右クリックして対応するディレクトリでターミナルを開き、./実行するように指示する必要があります。次に、別のフォルダで指定されたプログラムを実行するのはどうでしょうか。

もちろん、「環境変数」を使用することもできます。そうです、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コマンドを使用して環境変数を表示します。これらの単語の構成オプションが表示されたら、それを実行できます。これは、インストールしたばかりの「クロスコンパイルツールチェーン」を環境変数に設定したことを意味します。

コマンドを使用しarm-poky-linux-gnueabi-gcc -vてgccバージョンを確認し、環境変数が有効になったことを示します。

OK、これまでのところ、qtクロスコンパイラがインストールされています。

5.3クロスコンパイル環境をインストールする

上記では、ubuntuの下にクロスコンパイラをインストールしました。Qtアプリケーションをコンパイルして開発ボードで実行する場合は、クロスコンパイル環境を構築する必要があります。ARMプラットフォームのクロスコンパイラでコンパイルされたプログラムは、次のことができます。ボード上で実行されるi.MX6Uで開発されます。

主なことは、Qt Creatorの構成でキットを構成することです。開発およびコンパイル環境キットであるキット翻訳キットは、さまざまなプラットフォーム用のキットを構築し、さまざまなキットを使用してさまざまなプラットフォーム用のアプリケーションをコンパイルできます。これにより、クロス検証も行われます。 Qtのプラットフォーム機能!Androidスイートがインストールされている場合は、携帯電話でqtプログラムを実行することもできます。

参照ドキュメント:[PunctualityAtom]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)。次のコマンドを使用して、QtCreatorを開きます。「&」の役割はバックグラウンドで実行することです

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

5.4キットのインストール

qtcreaterソフトウェアをインストールした後、デフォルトでキットは1つだけです。次に、チュートリアルに従って他の2つのキットを作成します。そのうち、ATK-I.MX6Uは、大きなimx6ullARMプラットフォームで実行するために使用されるキットです。IMX6U-rsyncは、ネットワークのデバッグと開発ボードへのプログラムのダウンロード用のキットです。qtcreaterでコンパイルした後、クリックして実行すると、プログラムが開発ボードのメインに直接表示されます。

Qt Creatorのデフォルトでは、sftpまたはrsyncを使用してプログラムをボードに送信します。パンクチャリックアトミック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 SystemQtクロスコンパイル環境の構築V1.6.pdf2.5.1セクションを参照して、rsyncモードのQtリモートデバッグキットのインストールを完了します。

第六に、実際の戦闘

パンクチャリアトムに付属するルーチンを開きます。これがQt/03/03_serialportの例です。ダブルクリックします03_serialport.pro

開いた後、IMX6U-rsyncキットを選択します

開いた後、ソフトウェアは自動的にコンパイルされます。通常、エラーは発生しません。左下隅にある緑色の三角形をクリックするだけで、コンパイルして実行できます。

次に、開発ボードで魔法のシーンを見ることができます。ホストコンピュータが開発ボードまで実行され、開発ボードのシリアルポートに接続して楽しくプレイできます。

:開発ボードには時間厳守のアトミックブートqtデスクトップがあるため、表示を禁止できます。以下を参照してください。

最終効果:

どうですか?なぜこれを行うのかわからないかもしれませんが、新しいことを学ぶための最速の方法は、最初にそれをプレイすることです。逆学習は、学習への関心を高めることができます。

おすすめ

転載: blog.csdn.net/qq_39400113/article/details/125614193