エンベデッド ソフトウェア インフラストラクチャ

エンベデッド開発者に必要なコンポーネントを提供

概要

AMD とエコシステム パートナーが提供するエンベデッド ツールおよびランタイム環境は、構想から製品リリースまでを効率的に素早く実現することを目的としています。AMD は、オープンソース OS/ベアメタル ドライバー、複数のランタイム/OS 環境、統合開発環境など、AMD の Zynq™ SoC、Zynq™ UltraScale+™ MPSoC、MicroBlaze™ プロセッサ コア、および Arm® Cortex® M1/M3 マイクロコントローラーを使用してエンベデッド システムを構築するために必要なすべてを提供します。

AMD の Zynq SoC や Zynq UltraScale+ MPSoC デバイスにセキュリティや仮想化ソフトウェア ドライバーなどの高度な機能を実装できる包括的なサポートを活用することで、よりスマートで高度に接続された差別化システムを実現できます。
 

embedded-tutorials-landing


 

ビルド/開発ツール

Linux

AMD は、GIT リポジトリでソースコードや Yocto レシピ ファイルを提供するだけでなく、シンプルな Linux 開発フローをサポートする PetaLinux ツールも提供しています。これにより、AMD シリコンの Linux サポートは、自社のビルド システムまたはサードパーティ ツールで対応できます。AMD の Linux プロジェクトは、Versal™ アダプティブ SoCZynq™ SoC 、および MicroBlaze での開発向けにカスタマイズされた非商用の Linux 開発プロジェクトです。

AMD リリースの Linux カーネル サポートは次のとおりです。

  • 2017.x is 4.9  
  • 2018.x is 4.14  
  • 2019.x is 4.19 

ソフトウェア開発ツール

新しい Vitis™ 統合ソフトウェア プラットフォーム、SDK、エコシステム パートナーのツールなど、Zynq および MPSoC プラットフォームで SoC 同様の C/C++ プログラミングをサポートする複数の開発環境が用意されています。

AMD ソフトウェア開発環境
AMD エコシステムのソフトウェア開発環境およびツール

ビルド ツール

AMD は、エンベデッド Linux ソリューションの構築および運用をサポートする 2 種類のツールを提供しています。1 つは AMD の PetaLinux で、もう 1 つはオープンソース プロジェクトの Yocto です。PetaLinux は、エンベデッド Linux を迅速に構築するための GUI を提供し、Yocto は経験豊富なユーザーがそれぞれのボードに最適なカスタム Linux を構築するために使用できます。

AMD 製品は、広範なオープンソース リソースでサポートされているため、AMD SoC やエミュレーション プラットフォーム向けの Linux ベース アプリケーションを開発、ブート、実行、デバッグ、さらには維持することが可能です。また、アプリケーション例、カーネル コンフィギュレーション、Yocto レシピ、マルチプロセッシング、リアルタイム ソリューションが提供されているため、デバイス ドライバーや Linux オープン ソース開発者は、使い慣れたソースやツールを見つけることはもちろん、サポート フォーラムで同じ関心を持つ開発者と交流して意見を交換できます。

RTOS & ライブラリ パートナー

RTOS

リアルタイム オペレーティング システム (RTOS) とは、通常バッファリング遅延がなく、リアルタイムにデータを処理するリアルタイム アプリケーション向けのオペレーティング システム (OS) です。(wikipedia.org より抜粋)

RTOS で最も重要な要素はシンプルさと軽量を維持することです。ほかには、最小限の割り込みレイテンシとスレッド切り替えレイテンシが重要です。RTOS では、どれだけ膨大なデータを処理できるかではなく、迅速かつ確定的に応答できることが重要とされています。

FreeRTOS

FreeRTOS カーネルは、2003 年頃 Richard Barry 氏によって開発され、その後リチャードの会社 Real Time Engineers Ltd が開発と管理を引き継ぎました。

FreeRTOS は大成功を収め、2017 年には FreeRTOS プロジェクトの管理を AWS (アマゾン ウェブ サービス) に委任しました。Richard 氏は、その後も AWS チームの一員として FreeRTOS の管理に携わっています。

FreeRTOS™ は、AWS の 35 以上のアーキテクチャをサポートする市場を牽引する RTOS であり、2017 年には 3 分に 1 回ダウンロードされていました。FreeRTOS カーネルは、専門的な開発、厳密な品質管理、堅牢性、充実したサポートを特徴とし、専有のソース コードの公開要件なしで商用アプリケーションで自由に使用できます。(参照: https://www.freertos.org/RTOS.html)

freertos-logo

詳細は、https://www.freertos.org/RTOS.html をご覧ください。

FreeRTOS カーネル ポートは、次の AMD プロセッサで利用可能です。

プロセッサ [Device]
64 ビット Cortex-A53 アプリケーション プロセッサ (APU) および 32 ビット Cortex-R5 リアルタイム プロセッサ (RPU) ZynqUS+ SoC デバイス
32 ビット Cortex-A9 アプリケーション プロセッサ (APU) Zynq 7000 SoC デバイス
32 ビット MicroBlaze プロセッサ すべての AMD デバイス ファミリ

AMD 製品の FreeRTOS の詳細は、AMD FreeRTOS をご覧ください。

AMD は、ライブラリおよびベアメタル ドライバーも提供しています。このライブラリは、AMD のデバイス専用に開発されています。

ライブラリ
  • wip – ネットワーク TCP/IP スタック
  • xilisf – フラッシュ
  • スタンドアロン BSP – ボード サポート パッケージ
  • xilffs – FAT File システム
  • xilfpga – PL/FPGA 管理 (ビットストリーム 読み込み)
  • xilskey – セキュリティ
  • xilsecure – セキュリティ
  • xilrsa – セキュリティ

ベアメタル ドライバーおよびライブラリについての詳細は、AMD Wiki のベアメタルおよびライブラリをご覧ください。

RTOS およびベアメタル

オペレーティング システム 安全性認定 Zynq 7000 サポート Zynq UltraScale+ APU サポート Zynq UltraScale+ RPU サポート MicroBlaze サポート
AMD スタンドアロン (ベア メタル) 環境およびAMD ソフトウェア開発キット (SDK)  
DDC-I DEOS    
eSol eT-kernel    
eCOS    
イー・フォース株式会社    
ENEA OSE   お問い合わせ  
Etas RTA-OS    
Green Hills Software INTEGRITY    
LynxOS 7.0 お問い合わせ お問い合わせ    
Mentor Nucleus お問い合わせ
Micrium uC/OS-II
Micrium uC/OS-III  
RTEMS    
Sciopta  
Segger embOS      
Wittenstein OpenRTOS   お問い合わせ お問い合わせ お問い合わせ
Wittenstein SafeRTOS お問い合わせ お問い合わせ
Sysgo PikeOS  

AMP およびマルチ OS ソリューション

AMD は、高度なマルチ OS システム デザインを完成させるために必要な技術、資料、およびサポートを提供しています。AMD エコシステムが提供する製品は以下のとおりです。

ソフトウェア Zynq 7000 サポート Zynq UltraScale+ サポート
Dave Embedded FreeRTOS/Linux on the Bora board  
General Dynamics Mission Systems OKL4  
Green Hills INTEGRITY Multivisor  
Lynx Secure Separation Kernel Hypervisor  
Mentor Hypervisor
Mentor Trusted Execution Environment
QNX Hypervisor  
Wind River Hypervisor お問い合わせ お問い合わせ

AMD は、オープン ソース プロジェクトおよび、Open Asymmetric Multi Processing (OpenAMP) もサポートしています。OpenAMP (Open Asymmetric Multi-Processing) は、非対称型マルチプロセッシング (AMP) システム用ソフトウェア アプリケーションの開発に必要なソフトウェア コンポーネントを提供するフレームワークです。詳細は、Open Source をご覧ください。

トレーニング

AMD は、Zynq/MPSoC アプリケーション向けに広範なトレーニングおよびサポート オプションを提供しています。設計手法、ビデオ チュートリアル、開発者向けフォーラム、Wiki、オンライン サポート、デザイン サービス、FAQ、およびブログなどを通して、迅速なアプリケーションの市場参入をサポートしています。

デザイン サービス パートナー

ソフト プロセッサ コア

ソフト プロセッサ コア

MicroBlaze™ は、AMD FPGA ベースの 32 ビット RISC Harvard アーキテクチャ ソフト プロセッサです。AXI インターフェイス、メモリ管理ユニット (MMU)、命令/データ サイド キャッシュ、パイプラインの深さ設定、浮動小数点ユニット (FPU) など、高度なアーキテクチャ オプションが多数あります。

ソフト プロセッサ コアは AMD のソフトウェア ツールに含まれており、次の 3 つのプリセットで展開されています。


クリックして拡大表示

マイクロコントローラー プリセット (最大 200DMIPs)

  • 32 ビット プロセッサ コア
  • JTAG デバッグ インターフェイス
  • 密結合ローカル メモリ
  • SPI コントローラー
  • I2C コントローラー
  • UART
  • 割り込みコントローラー
  • タイマー
  • GPIO

クリックして拡大表示
リアルタイム プロセッサ プリセット (最大 200DMIPs)
  • すべてのマイクロコントローラー プリセット ブロック
  • 命令キャッシュ
  • メモリ保護ユニット (MPU)
  • データ キャッシュ
  • DDR メモリ コントローラー

クリックして拡大表示
アプリケーション プロセッサ プリセット (最大 180DMIPs)
  • すべてのリアルタイム プロセッサ プリセット ブロック
  • メモリ管理ユニット
  • イーサネット コントローラー

Cortex-M1 および Cortex-M3 プロセッサは、低い消費電力、少いロジック リソース、そして短い割り込みレイテンシに最適化されて設計された 32 ビット プロセッサです。Cortex-M1 は、通信、制御、管理が必要な制約の多いアプリケーションに最適ですが、M3 は幅広いエンベデッド/IoT アプリケーションに対応します。上位互換性を保つため、Cortex-M1 は Cortex-M3 の命令セットと機能のサブセットを実装します。

エンベデッド Linux

AMD とエコシステム パートナーが提供するエンベデッド ツールおよびランタイム環境は、構想から製品リリースまでを効率的に素早く実現することを目的としています。AMD は、オープンソース OS/ベアメタル ドライバー、複数のランタイム/OS 環境、統合開発環境、コンパイラ、デバッガー、プロファイリング ツールなど、AMD の Zynq™ SoC、 Zynq™ UltraScale+™ MPSoC デバイス、MicroBlaze™ プロセッサ コア、および Arm® Cortex®-M1/M3 マイクロ コントローラーを使用してエンベデッド システムを構築するために必要なすべてを提供します。

Linux

  Zynq 7000 SoC サポート Zynq UltraScale+ APU サポート Zynq UltraScale+ RPU サポート MicroBlaze サポート
非商用  
Linux、U-Boot、その他多数 (AMD GIT)  
Yocto/OpenEmbedded サポート  
PetaLinux ツール  
Arch Linux ARM    
Ubuntu Linux   AMD デバイス向け認定 Ubuntu    
Android    
商用ソリューション  
Enea Linux    
Mentor Embedded Linux    
Suse Linux    
Sysgo ELinOS    
オープン ソース プロジェクト

オープン ソース プロジェクト

AMD は、オープンソース コミュニティに参加しています。その主な目的とプロジェクトは次のとおりです。Hackster Community Portal には、その他のデザインおよび情報が掲載されています。

AMD では、デバイスにプロセッサを導入した当初からオープンソース Linux を使用しています。最初の製品は 2001年の Virtex-II Pro です。以来、オープンソース Linux を利用し、2007 年からアップストリーム パッチの提供を開始しました。Zynq™ 7000 で Linux コミュニティでの地位を確立し始め、現在では Linux U-Boot プロジェクトに大きく貢献する存在となりました。

Linaro とは、Arm Ecosystem 向けにソフトウエアを開発するオープンソースのエンジニアリング組織です。Arm と提携して Arm Ecosystem を共同で管理しています。

「96Boards」のページにあるように、96Boards は、最新の Arm ベース プロセッサをリーゾナブルに利用できるように Linaro が作成した一連のハードウェア仕様です。これら仕様は、ソフトウェア アプリケーション、ハードウェア デバイス、カーネル、およびその他のシステム ソフトウェア開発者用に公開されており、SoC に依存しない (プロセッサに依存しない) 開発プラットフォームの標準ボード レイアウトを定義しています。

アヴネット社は、96Board 仕様に準拠した AMD デバイス搭載の「Ultra96」 を提供しています。Ultra96 の開発には、Avnet 社、AMD、Linaro コミュニティが携わりました。詳細は、http://zedboard.org/product/ultra96-v2-development-board をご覧ください。

OpenAMP は、オープンソース ソリューションを使用するヘテロジニアスなエンベデッド システムにおいて動作環境間の相互作用を標準化するための Linaro コミュニティ プロジェクトです。OpenAMP の主な取り組みは次のとおりです。

  • OpenAMP は、次の 2 つをサポートするオープン AMP フレームワークです。
    • AMP の使用における標準化された方法
    • オープンソースのクリーンルーム実装/プロジェクト
  • OpenAMP には現在、次のコンポーネントが含まれています。
    • ライフサイクル操作 - 別の環境の開始/停止など
    • メッセージング - メッセージの送信/受信
    • 低レベルの抽象化 - メモリの共有、プロセッサ間の割り込みなど
    • プロキシ オペレーション - サービスへのリモート アクセス (ファイル システムなど)
    • 開発中: System Device Trees を使用したリソース コンフィギュレーション
  • 既存のオープンソース プロジェクトをベースに構築されています。
    • RemoteProc、rpmsg、Virtio、Device Trees
  • オープンソースで作業することで開発を加速
    • Linux および RTOS の実装

Yocto プロジェクトとは、ハードウェア アーキテクチャに関係なく、エンベデッド製品用の Linux ベースのカスタム システムを作成できるようサポートするオープンソースの共同プロジェクトです。このプロジェクトは、世界中の開発者がエンベデッド デバイス向けのカスタム Linux イメージを作成する際に利用できる技術、ソフトウェア スタック、コンフィギュレーション、またベスト プラクティスを共有するための手段を提供しています。