RISC-VでLinuxを動かすためのレジスタ制御
RISC-Vには、基本となる命令セットに加えてシステムレジスタも定義されています。RISC-Vでオペレーティングシステムを動作させたり、アプリケーションを開発するためには、このシステムレジスタについて理解する必要があるでしょう。
RISC-Vには、基本となる命令セットに加えてシステムレジスタも定義されています。RISC-Vでオペレーティングシステムを動作させたり、アプリケーションを開発するためには、このシステムレジスタについて理解する必要があるでしょう。
Xilinx Zynq UltraScale+ MPSoCは、これまでのZynqよりPS(SoC部分)が格段にスケール アップしています。ZynqはArmv7アーキテクチャーのArm Cortex-A9シングルまたはデュアルコアだったのに対して、MPSoCはArmv8アーキテクチャーのArm Cortex-A53デュアルまたはクアッド コアでさらにリアルタイム処理用のArm Cortex-R5デュアルコアやGPUも内蔵されています。
RISC-Vの命令セットの特徴について聞かれるとき、まず真っ先に「シンプルである」と答えると思います。実際、x86やArmなどのアーキテクチャに比べて命令セットは綺麗にまとめられており、あまり使うことのない無駄な命令も定義されていません。
皆さんは「RISC-V」という名前を聞いたことがあるでしょうか。コンピュータアーキテクチャ、プロセッサなどに興味を持っている方ならば、その名前を少しくらいは聞いたことがあると思います。RISC-Vは「リスク-ファイブ」と呼び、最近急速に注目を浴びているコンピュータの命令セットアーキテクチャです。
組み込みシステムにおけるローダーとは、電源が入り、RESET信号が解除されて動き出す最初のプログラムです。ローダーの役割は、プログラムをメモリ上に読み込むためにメモリコントローラの初期化を行い、プログラムが保存されているフラッシュメモリからSRAMやDRAMなどのメモリに展開して実行するまでの動作を行います。
SOLID-OSによる割り込みは、Toppers/ASP3がベースになっており、カーネルの管理下で割り込みの処理を行いますので、「割り込みサービスルーチン(ISR)」または「管理内割り込み」と呼んだりします。それ以外のものは、「割り込みハンドラ」もしくは「カーネル管理外割り込み」と呼びます。
組み込みアプリ開発において、リアルタイムOS(RTOS)を使うメリットをこれまでに十分説明してきました。今回は、いよいよタスクの実装です。組み込みアプリを構築する上で、最も重要な部分です。使用する「SOLID-OS」は、Toppers/ASP3をベースにしたμITRON準拠のRTOSです。
組み込みシステムのアプリケーションを作っている場合、CPUの機能だけを使うことはほぼないと言っていいでしょう。通常、ハードウェアの操作を行うために用意するソフトウェアを「デバイスドライバ」と呼んでおり、パソコンなどでも頻繁に利用されています。
今回は、HTML5ブラウザ、音声認識エンジン「AmiVoice」と前回も使用した音声合成エンジン「microAITalk」で遊んでみましょう!AmiVoiceは株式会社アドバンスト・メディアが開発・提供する音声認識ソフトウェアです。