2025年1月10日 - 東京都渋谷区 - ポジティブワン株式会社(スウェーデンに拠点を置くPercepio社日本総代理店)は、FreeRTOS 11およびSMP対応したPercepio Tracealyzerの販売を開始いたします。
FreeRTOS 11のメインラインカーネルに対して対称型マルチプロセッシング(SMP)サポートを導入しました。これにより、単一のFreeRTOSカーネルが複数のプロセッサコアを管理できるようになります。この機能は高性能を可能にする一方で、システムの複雑性が増し、ランタイム問題のリスクが高まるとともに、デバッグが困難になります。Percepio Tracealyzerによるシステムトレースは、システム実行に関する深い洞察を提供することで効果的な解決策をもたらします。Tracealyzerは長年にわたりFreeRTOSをサポートしており、今回FreeRTOS 11およびSMPシステムへの対応が検証されました。
FreeRTOS 11のメインラインカーネルに対して対称型マルチプロセッシング(SMP)サポートを導入しました。これにより、単一のFreeRTOSカーネルが複数のプロセッサコアを管理できるようになります。この機能は高性能を可能にする一方で、システムの複雑性が増し、ランタイム問題のリスクが高まるとともに、デバッグが困難になります。Percepio Tracealyzerによるシステムトレースは、システム実行に関する深い洞察を提供することで効果的な解決策をもたらします。Tracealyzerは長年にわたりFreeRTOSをサポートしており、今回FreeRTOS 11およびSMPシステムへの対応が検証されました。
◆Tracealyzerを用いたマルチコアトレースの可視化
TracealyzerはFreeRTOS 11 SMPアプリケーションに対するマルチコアトレースの可視化を可能にします。4つのArm Cortex-A53コアを搭載したTexas Instruments AM62xをデモンストレーションプラットフォームとして使用し、Tracealyzerの使用方法を以下に詳述します。この内容の多くは他のマルチコアプロセッサにも適用可能です。
・ デフォルト表示モード: すべてのコアのタスクが一緒に表示
・ 折りたたみ表示: “-”ボタンをクリックすると、コアごとの単一列が表示され、トレースが簡素化
・ CPU負荷グラフ: 各コアの総CPU負荷を表示します。例えば、4つのコアがすべて100%稼働している場合、合計負荷は400%と表示
・ コア別表示: ドロップダウンメニューから特定のコアを選択するか、複数のCPU負荷グラフインスタンスを開いて詳細を確認可能
◆FreeRTOS SMP向けTraceRecorderの設定
Percepio Tracealyzerは、カーネルイベントやカスタムアプリケーションデータを記録するためにTraceRecorderライブラリを使用します。FreeRTOS SMPでは、リングバッファを使用するスナップショットトレースが推奨されます。SMP用の実験的な連続ストリーミングも利用可能ですが、性能に制限があります。
TracealyzerはFreeRTOS 11 SMPアプリケーションに対するマルチコアトレースの可視化を可能にします。4つのArm Cortex-A53コアを搭載したTexas Instruments AM62xをデモンストレーションプラットフォームとして使用し、Tracealyzerの使用方法を以下に詳述します。この内容の多くは他のマルチコアプロセッサにも適用可能です。
・ デフォルト表示モード: すべてのコアのタスクが一緒に表示
・ 折りたたみ表示: “-”ボタンをクリックすると、コアごとの単一列が表示され、トレースが簡素化
・ CPU負荷グラフ: 各コアの総CPU負荷を表示します。例えば、4つのコアがすべて100%稼働している場合、合計負荷は400%と表示
・ コア別表示: ドロップダウンメニューから特定のコアを選択するか、複数のCPU負荷グラフインスタンスを開いて詳細を確認可能
◆FreeRTOS SMP向けTraceRecorderの設定
Percepio Tracealyzerは、カーネルイベントやカスタムアプリケーションデータを記録するためにTraceRecorderライブラリを使用します。FreeRTOS SMPでは、リングバッファを使用するスナップショットトレースが推奨されます。SMP用の実験的な連続ストリーミングも利用可能ですが、性能に制限があります。
TraceRecorder統合の手順:
1.ハードウェアポートの設定:
・ TRC_CFG_HARDWARE_PORTをTRC_HARDWARE_PORT_APPLICATION_DEFINEDに更新します。
・ trcConfig.hでカスタムハードウェアポートマクロを定義します。
2.クリティカルセクションの保護:
・ trcHardwarePort.hのTRC_HARDWARE_PORT_ARMv8AR_A32からマクロをコピーします。
・ TRACE_ALLOC_CRITICAL_SECTION、TRACE_ENTER_CRITICAL_SECTION、TRACE_EXIT_CRITICAL_SECTIONを定義します。
3.タイムスタンプ設定:
・ TI MCU+ SDKのGTCモジュールを使用します。例:
#include "drivers/gtc.h"
#define TRC_HWTC_COUNT ((uint32_t)GTC_getCount64())
・ カウンタータイプをTRC_FREE_RUNNING_32BIT_INCRとして定義します。
・ 周波数を25 MHzに指定します:
#define TRC_HWTC_FREQ_HZ (25000000)
・ 関連マクロ(TRC_HWTC_PERIOD、TRC_HWTC_DIVISORなど)を追加します。
4.マルチコア設定:
・ コア数と識別方法を定義します:
#define TRC_CFG_CORE_COUNT 4
#define TRC_CFG_GET_CURRENT_CORE Armv8_getCoreId()
5.64ビット互換性:
・ 基本型を64ビット整数にマッピングします:
#define TRC_BASE_TYPE int64_t
#define TRC_UNSIGNED_BASE_TYPE uint64_t
1.ハードウェアポートの設定:
・ TRC_CFG_HARDWARE_PORTをTRC_HARDWARE_PORT_APPLICATION_DEFINEDに更新します。
・ trcConfig.hでカスタムハードウェアポートマクロを定義します。
2.クリティカルセクションの保護:
・ trcHardwarePort.hのTRC_HARDWARE_PORT_ARMv8AR_A32からマクロをコピーします。
・ TRACE_ALLOC_CRITICAL_SECTION、TRACE_ENTER_CRITICAL_SECTION、TRACE_EXIT_CRITICAL_SECTIONを定義します。
3.タイムスタンプ設定:
・ TI MCU+ SDKのGTCモジュールを使用します。例:
#include "drivers/gtc.h"
#define TRC_HWTC_COUNT ((uint32_t)GTC_getCount64())
・ カウンタータイプをTRC_FREE_RUNNING_32BIT_INCRとして定義します。
・ 周波数を25 MHzに指定します:
#define TRC_HWTC_FREQ_HZ (25000000)
・ 関連マクロ(TRC_HWTC_PERIOD、TRC_HWTC_DIVISORなど)を追加します。
4.マルチコア設定:
・ コア数と識別方法を定義します:
#define TRC_CFG_CORE_COUNT 4
#define TRC_CFG_GET_CURRENT_CORE Armv8_getCoreId()
5.64ビット互換性:
・ 基本型を64ビット整数にマッピングします:
#define TRC_BASE_TYPE int64_t
#define TRC_UNSIGNED_BASE_TYPE uint64_t
◆マルチコアシステムにおけるTraceRecorderの初期化
TraceRecorderは、FreeRTOS関数が呼び出される前に初期化する必要があります。初期化はCore 0でのみ行うようにしてください:
if (Armv8_getCoreId() == 0) {
(void)xTraceInitialize();
}
同様に、トレースの有効化もCore 0で行います:
if (Armv8_getCoreId() == 0) {
(void)xTraceEnable(TRC_START);
}
すべてのコアが同じmain()関数を共有する場合、他のコアが初期化完了を待つブロッキングループを使用して同期をとることができます。
◆TI MCU+ SDKおよびCode Composer Studioの特記事項
TraceRecorderをTI MCU+ SDKに統合する際:
・ FreeRTOSConfig_smp.h.xdtやmain_freertos_smp.c.xdtなどのテンプレートファイルを更新します。
・ CCSデバッガを使用してトレースデータをホストファイルに保存します:
(1)“Memory Browser” -> “Save Memory”を選択します。
(2)RecorderDataPtrとサイズを指定します。
(3)バイナリ形式で保存し、Tracealyzerで開きます。
◆評価ライセンス
以下のウエブサイトから登録をしてください。
https://percepio.com/tracealyzer/download-tracealyzer/
◆見積依頼
ポジティブワン株式会社(poc_sales@positive-one.com)まで問い合わせください。
TraceRecorderは、FreeRTOS関数が呼び出される前に初期化する必要があります。初期化はCore 0でのみ行うようにしてください:
if (Armv8_getCoreId() == 0) {
(void)xTraceInitialize();
}
同様に、トレースの有効化もCore 0で行います:
if (Armv8_getCoreId() == 0) {
(void)xTraceEnable(TRC_START);
}
すべてのコアが同じmain()関数を共有する場合、他のコアが初期化完了を待つブロッキングループを使用して同期をとることができます。
◆TI MCU+ SDKおよびCode Composer Studioの特記事項
TraceRecorderをTI MCU+ SDKに統合する際:
・ FreeRTOSConfig_smp.h.xdtやmain_freertos_smp.c.xdtなどのテンプレートファイルを更新します。
・ CCSデバッガを使用してトレースデータをホストファイルに保存します:
(1)“Memory Browser” -> “Save Memory”を選択します。
(2)RecorderDataPtrとサイズを指定します。
(3)バイナリ形式で保存し、Tracealyzerで開きます。
◆評価ライセンス
以下のウエブサイトから登録をしてください。
https://percepio.com/tracealyzer/download-tracealyzer/
◆見積依頼
ポジティブワン株式会社(poc_sales@positive-one.com)まで問い合わせください。
【Percepio社について】
Percepio社は、スウェーデンのヴェステロースに本社を構える組み込みシステム向けトレース解析ツールのリーディングカンパニーです。主力製品「Tracealyzer」は、リアルタイムOSを利用する組み込みシステム開発者に、デバッグやパフォーマンス最適化のための高度な可視化ツールを提供しています。TracealyzerはSafeRTOS、FreeRTOS、ThreadX、VxWorks、LynxOSなど、さまざまなRTOSに対応しており、システムの安定性と信頼性が要求される医療機器や産業制御など、セイフティクリティカルな分野での利用が広がっています。Percepio社は、システム開発の効率化と信頼性向上を目指し、今後も多様なリアルタイムOSのサポート拡充と新機能の提供を継続していきます。
【ポジティブワン株式会社について】
社名: ポジティブワン株式会社(POSITIVE ONE CORPORATION)
〒150-0043 東京都渋谷区道玄坂1-12-1 渋谷マークシティ・ウエスト22F
URL: https://www.positive-one.com
ポジティブワン株式会社は、最先端技術と時代を先読みしたエンベデッドソリューションを提供します。海外の有力な技術会社と提携し、多様化する仕様に対応できるOEMハードウェアやISO準拠のツールを提供し、システムコンサルティングからハードウェア、ソフトウェアのシステム受託開発まで、幅広くサポートしています。
【本件に関するお問い合わせ先】
ポジティブワン株式会社
メールアドレス:poc_sales@positive-one.com
TEL:03-3256-3933
FAX:03-4360-5301
Percepio社は、スウェーデンのヴェステロースに本社を構える組み込みシステム向けトレース解析ツールのリーディングカンパニーです。主力製品「Tracealyzer」は、リアルタイムOSを利用する組み込みシステム開発者に、デバッグやパフォーマンス最適化のための高度な可視化ツールを提供しています。TracealyzerはSafeRTOS、FreeRTOS、ThreadX、VxWorks、LynxOSなど、さまざまなRTOSに対応しており、システムの安定性と信頼性が要求される医療機器や産業制御など、セイフティクリティカルな分野での利用が広がっています。Percepio社は、システム開発の効率化と信頼性向上を目指し、今後も多様なリアルタイムOSのサポート拡充と新機能の提供を継続していきます。
【ポジティブワン株式会社について】
社名: ポジティブワン株式会社(POSITIVE ONE CORPORATION)
〒150-0043 東京都渋谷区道玄坂1-12-1 渋谷マークシティ・ウエスト22F
URL: https://www.positive-one.com
ポジティブワン株式会社は、最先端技術と時代を先読みしたエンベデッドソリューションを提供します。海外の有力な技術会社と提携し、多様化する仕様に対応できるOEMハードウェアやISO準拠のツールを提供し、システムコンサルティングからハードウェア、ソフトウェアのシステム受託開発まで、幅広くサポートしています。
【本件に関するお問い合わせ先】
ポジティブワン株式会社
メールアドレス:poc_sales@positive-one.com
TEL:03-3256-3933
FAX:03-4360-5301