クロスプラットフォームライブラリとAPI
Qt Creator IDEと生産性向上ツール
UI compositionのためのUIデザインツール
受託開発、トレーニング、サポート等
Qtは、UIデザインやソフトウェア開発から品質保証、展開に至るまで、製品開発ライフサイクル全体で生産性を向上させます。あなたのニーズに最も適したソリューションを見つけてください。
最新のリソースを入手し、今後のイベントを確認しましょう。
理想的な学習リソースを見つけたり、コミュニティと交流したりして、Qtのスキルを向上させましょう。
初心者であろうとベテランのQtプロであろうと、成功するために必要なサポートと助けがすべて揃っています。
4月 15, 2024 by Qt Group 日本オフィス | Comments
このブログは「Measure code coverage on ARM Cortex-M microcontrollers」を翻訳・一部加筆したものです。
ARM Cortex-Mファミリーは、ますます一般的なマイクロコントローラのアーキテクチャとなっています。この記事では、このファミリーのマイクロコントローラATSAMD21G18のコードカバレッジを測定する方法を紹介します。使用するツールはSquish Coco、SparkFun SAMD21 Dev Breakoutの開発ボード、そしてAtmel-ICEプログラマです。
Atmel StudioとSquish Cocoをインストールした後、Cocoツールのビルド環境選択(toolselector.exe、又は、BuildEnvironmentSelection.exe)を起動します。このツールは、オペレーティングシステムのスタートメニューにあります。Windows では、以下のように表示されます:
このツールを起動した後に表示されるダイアログで、まずツール・スイートとしてGNU Embedded Tools (I/O機能なし)を選択し、次にGNU Embeddedディレクトリを選択します。最後に、GNUサポートをインストールするボタンをクリックします。
C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\arm\arm-gnu-toolchain を選択してください。親ディレクトリや子ディレクトリでないことにご注意ください。そうしないと、[Install GNU Support]ボタンが有効になりません。
GNU Supportが追加されたら、Cocoのインストール・フォルダーに移動し、新しく作成されたarm-gnu-toolchainwrapperフォルダーに移動します(例: C:\Program Files\squishcoco\arm-gnu-toolchain\wrapper)。そこにarm-none-eabi-gcc.csproというファイルがあります。このファイルの中には、CONSTRUCTOR_ATTRIBUTEとDESTRUCTOR_ATTRIBUTEという2つの設定があるはずです。これらの設定の値が__attribute__((constructor))である場合は、両方の設定でこの値を削除してください。
次にAtmel Studioを開き、メニューのToolsからOptionsを選択します。オプションダイアログが開きますので、ツールチェーンオプションのパッケージ構成を選択してください。ここで、[Add Flavour]ボタンをクリックしてCoco "Flavour"を追加し、[Package Name]フィールドにCocoを、[Package Base Path]フィールドにC:\Program Files\squishcoco\arm-gnu-toolchain\wrapperを入力します。
このCocoの「flavour」は、後でプロジェクトをSquish Cocoサポート(コードインスツルメンテーションなど)でコンパイルするときに使用されます。
オプションとして、新しいプロジェクトを作成する前に、開発ボードがAtmel Studioで利用可能かどうかを確認します。そのためには、まずメニューのToolsからDevice Programmingを選択します。次に表示されるダイアログで、コンボボックスでAtmel-ICEを選択し、デバイスフィールドでATSAMD21G18を入力または選択し、適用ボタンをクリックします。最後に、[デバイス情報]タブで[読み取り]ボタンをクリックします。これでマイコンの情報が表示されます。
プロジェクトでCoco Flavourを使い始める前に、サンプル・プロジェクトでセットアップをチェックすることができます。これを行うには、新しいGCC C実行可能プロジェクトを作成し、そのプロパティを開きます。デバイス・プロパティでデバイスATSAMD21G18を選択し、詳細プロパティでCoco Flavourを選択します。
ツールチェーン・プロパティで、CコンパイラとCリンカの両方について、「その他の設定」の「その他のフラグ」フィールドに、以下のフラグを追加します:
--cs-memory-pool=4096 --cs-libgen=-mthumb --cs-on --cs-hit --cs-counter-size=1 --cs-exclude-file-wildcard=*_samd21.c --cs-exclude-file-wildcard=c:*.* --cs-minimal-api --cs-libgen=-g --cs-libgen=-O0
ここで重要なのは、-cs-libgen=-mthumbを追加することです。なぜなら、デフォルトではプロジェクトがthumb命令セットを使用しているからです。
これに続いて、1つか2つの簡単な関数を追加して、マイクロコントローラー上でプロジェクトのコンパイルとデバッグを試みることができます。
デバイスからカバレッジ・データを取得するには、ブログ記事「リモート・デバッガ接続経由でコード・カバレッジ・データを取得する」で説明したのと同じアプローチを使用できます。CocoのカスタムIO関数を追加(実装)し、GDBデバッガを使用する必要があります。このツールのコンソールウィンドウは、Atmel Studioの[表示] > [その他のウィンドウ] > [GDBコンソール]メニューの下にあります。
これについては、今後のブログ記事で詳しく紹介する予定です。とりあえず、この例を試してみたい方は、こちらのソースコードをご利用ください: GccApplication1.zip
[*] Published on March 5, 2019: Retrieving Code Coverage from ARM Cortex-M Microcontrollers
Download the latest release here: www.qt.io/download.
Qt 6.8 release focuses on technology trends like spatial computing & XR, complex data visualization in 2D & 3D, and ARM-based development for desktop.
Check out all our open positions here and follow us on Instagram to see what it's like to be #QtPeople.
12 6, 2024
このブログは「Squish 8.1: Qt 6.8 Support, Squish for Java on Linux arm64, and..
11 29, 2024
このブログは「Coco 7.2.1 is here with new improvements」を翻訳・一部加筆したものです。 Coco..
Qt Group includes The Qt Company Oy and its global subsidiaries and affiliates.