組み込みLinuxディストリビューションとは
組み込みLinuxディストリビューションの特徴や要件について説明します。Linuxディストリビューションの種類は年々増え続けており、製品開発のプロジェクトでは「自社製品にどのLinuxディストリビューションを採用すべきか」という検討に多くの時間を費やさなければなりません。
組み込みLinuxディストリビューションの特徴や要件について説明します。Linuxディストリビューションの種類は年々増え続けており、製品開発のプロジェクトでは「自社製品にどのLinuxディストリビューションを採用すべきか」という検討に多くの時間を費やさなければなりません。
「リアルタイムOS(RTOS)」はタスク制御機能を提供するソフトウェア・プラットフォームです。今回の初心者講座マルチコア編では、SPRESENSEのアプリケーション開発から一歩踏み込み、SDK同梱のリアルタイムOS「NuttX」の特長と、その効果を紹介します。
今回の初心者講座マルチコア編では、広域通信網へ接続できるLTEを紹介いたします。SPRESENSEは、2019年12月に発売されたSPRESENSE用の「SPRESENSE LTE Board」により、広域通信網と接続可能(ゲートウェイが不要、またはゲートウェイ化として振る舞えることが可能)となり、WEBサービスやクラウドとの統合が可能となりました。そこで、本記事ではSPRESENSEを題材として、広域通信網に接続できるメリットや、マルチコアの活かし方、具体的な操作方法などを文章と動画を交えて紹介いたします。
今回の初心者講座「マルチコア編」はアプリケーションを構成する機能を、あえてCPUコア上で実行せず、SoC内に搭載された専用演算器(DSP)へ処理を依頼する『オフローディング技術』について解説いたします。オフローディング技術を活用することにより、CPUコアの使用率を下げることができるため、既存のプログラムの並列度を増やして高速化する、新しいタスクの並列実行を計画する、CPUコアの電力消費を抑制しバッテリーを長寿命化させることができます。
今回の初心者講座マルチコア編では、汎用コンピュータが採用している電力低減技術(電力削減技術)をはじめ、マルチコア・アーキテクチャのSPRESENSEが低消費電力を達成するために採用した技術、実際にデバイスが動作している最中の電力解析やその結果について詳解いたします。
安価なJTAG-ICEデバッガと、無償の開発環境を接続して、コア間をシームレスにでデバッグする様子や方法を動画にて紹介いたします。特別な開発作業なく簡単に使い始めることができるため、はじめてのマルチコアプログラミングに挑戦される方も、是非お手元でお試しください。
今回は、産業向けアプリケーションのPoCをイメージし、SPRESENSE SDKに同梱されたサンプル・アプリケーションである「マルチコアを使った録音プログラム(Audio Recorder)」を改変し、「自身で設計した信号解析アルゴリズムを実行するサブコアと連携」、高速かつ高精度に周辺状況を分析できるアプリケーションの開発方法を紹介いたします。
SPRESENSEは汎用CPU(サブコアであるCortex-M4)上でWAVやMP3を処理できる「ソフトウェア・エンコーダ/デコーダ」機能を提供しています。ソフトウェア・エンコーダ/デコーダをサブコア上で実行することにより、システムの根幹を担うメインコアに負荷をかけることなく音声処理を実現。また、サブコアは汎用CPUであることから、WAVやMP3の処理をしていない間でも他のタスクを処理するコアとして活用することができます。
今回の初心者講座では、サブコアの内部状態や処理対象となったデータの断片を、順序付けてメインコアへと送出できる『リングバッファ』について紹介いたします。なお、今回紹介する機能に対応したC言語のソースコードはGitHubにて公開しています。解説だけでなく、ソースコード・リーディングも活用し、コア間の連携方法への理解を深めましょう。