メインコンテンツに移動

RXファミリのソフトウェアの歴史と今後の展望 #12 -Embedded System Tuning / Tracealyzer--

画像
Hiroki Ishiguro
石黒 裕紀
主幹技師
掲載: 2023年12月6日

組込みシステムのソフトウェア開発は、これまで以上に複雑さを増しています。特に、インターネット接続機能の導入は、多くの技術的挑戦を伴います。この複雑さに対処するためには、効果的なツールが不可欠です。そこで、本記事では、ルネサスのパートナーであるPercepio社が提供する「Tracealyzer」というツールの力を紹介いたします。

日々の開発作業で直面する課題やボトルネックを、Tracealyzerを使って効果的に特定・解決する方法について、具体的な例を交えて解説します。このツールの可能性を最大限に引き出すヒントとして、ぜひ参考にしてください。技術者ではない方でも、技術者の方々との議論の中で、このツールの名前が出てきた際、その背景や意義についての理解が深まるでしょう。

1. インターネット接続機能とその課題

現代の組込みシステムは、インターネット接続機能の導入が一般的となっています。しかし、TCP/IPプロトコルスタックやクラウドサービス接続のためのMQTT、TLSといったプロトコルスタックを導入する際、リアルタイムOSの導入も考慮する必要があります。これらの技術的な詳細は一見難解に感じるかもしれませんが、AWSのFreeRTOSやMicrosoftのAzure RTOS等の登場によりその敷居は下がりつつあります。

2. 製品のチューニングの重要性

製品の性能を最大限に引き出すためには、内部の動作を詳細に確認し、必要に応じて調整することが必要です。例えば、通信速度を上げるための設定変更や、メモリ使用量の最適化、割込み優先度の調整によるシステムの応答性能の向上などが考えられます。このような「チューニング」作業は、製品の価値を高める重要なプロセスとなります。

3. Tracealyzerの力

ルネサスのパートナーであるPercepio社のTracealyzerは、上記のチューニングを助ける強力なツールです。具体的には、製品のCPU使用率やメモリ使用量、割込みの発生など、内部の動作状態をリアルタイムでモニタリングできます。
たとえばTracealyzerを用いてFreeRTOSがAWSに接続する際にマイコン内部で動的に確保するメモリ使用量(ヒープメモリ)の増減を可視化することで、利用されていないメモリを確認しFreeRTOSの設定を見直すことでその領域を減らすことができます。これによりFreeRTOS上で動作するアプリケーションにより多くのメモリを割り当てることができるようになります。また、CPU使用率は、これまでマイコンの汎用ポートから信号出力しそれをオシロスコープで計測することによって測定していましたが、Tracealyzerだけで測定出来るようになりました。

4. 実際の動作の様子

以下の動画では、RX72N Envision Kitを用いて、Tracealyzerでのモニタリングの様子をご紹介します。この動画を通じて、具体的な使用方法や効果、このツールの価値や製品への影響を感じていただけると幸いです。

https://github.com/renesas/rx72n-envision-kit/blob/master/README.md#tracealyzer-demo-on-rx72n-envision-kit

5. Tracealyzerの具体的な機能

動画に示されている通り、Tracealyzerには様々なモニタリングウィンドウが用意されています。CPUのタスクの実行状態やCPU負荷率、メモリ使用量など、開発やチューニングに必要な情報を瞬時に把握できます。これにより、技術者は効率的に問題点を特定し、最適な製品性能を実現するための調整を行うことができます。

画像

6. 実際の製品での活用事例

例として、RX72N Envision Kitでの動作状態を考えてみましょう。このキットはSDカードからのデータ読み込みやファームウェアのアップデート、さらにAWSとの通信など、複数のタスクを同時に実行しています。Tracealyzerを使用することで、これらのタスクの動作状態や優先度、さらには割り込みの動作など、製品の内部状態を詳細に把握することができます。上記図を少し掘り下げて解説します。図では時間が縦軸、タスクが横軸で表されています。時間は下方向に流れます。吹き出しは各タスクにおけるOSシステムコールの呼び出しを表します。SDカード制御用のタスク(sdcard)がEthernetの受信割込み(ISR notifying ETHER_RECEI)に割り込まれ、続いてIPタスク(IP-task)により受信処理がSDカード制御用のタスクより優先して実行されている様子が分かります。このように割込み発生時の内部動作を確認し、より性能を引き出せるパターンに「チューニング」していくことで製品の価値を高められると考えます。

7. まとめと今後の展望

組込みシステムの開発は日々進化し、その複雑さも増してきています。このような状況下で、製品の性能や品質を最大限に引き出すためには、効果的なツールの活用が不可欠です。Tracealyzerはその一つとして、多くの開発者や製品企画担当者にとって、大きな価値を提供することが期待されます。

8. 参考リンク

Tracealyzerを体験されたい方はRX72N Envision Kitがおすすめです。以下に動作確認方法を載せています。

https://github.com/renesas/rx72n-envision-kit/wiki/Tracealyzer%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95

また、RX72N Envision Kit以外のボードで試したい場合は、Tracealyzer用のモニタソフトをマイコンに埋め込む方法を解説した以下アプリケーションノートが参考になります。

https://www.renesas.com/document/apn/tracealyzer-freertos-debugging

このアプリケーションノートの内容を解説した動画も紹介させていただきます。

Tracealyzer® を使用してFreeRTOSをデバッグする方法(RX) | Renesas

このアプリケーションノートや動画は、CK-RX65Nを用いて解説しています。Ethernetやセルラーを用いてAWSやAzure等のクラウドサービスと通信実験することが可能です。

https://www.renesas.com/products/microcontrollers-microprocessors/rx-32-bit-performance-efficiency-mcus/ck-rx65n-cloud-kit-based-rx65n-mcu-group

この記事をシェアする