検索
連載

インテルを源流に持つRTOS「INtime」はWindowsとの共存で強みを発揮するリアルタイムOS列伝(56)(3/3 ページ)

IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第56回は、Windows環境と共存するRTOSという形で提供されている「INtime」を紹介する。

Share
Tweet
LINE
Hatena
前のページへ |       

Windowsのエコシステムと共存できることが最大のメリット

 ちなみにHello, Worldのサンプルはこんな感じである(リスト1)。これはHelloworld.cの中に含まれるmain()の中から呼ばれるcallback関数として実装されており、このPoll1()は定期的に呼び出されてリアルタイムで処理されるという想定のコードである。

void Poll1(void* param)
{
	int x;
#ifdef _DEBUG
	fprintf(stderr, "Poll1 started\n");
#endif
	  :
	  :
	(中略)
	  :
	  :
	while (!gInit.bShutdown)
	{
		RtSleep(1000);
#ifdef _DEBUG
		fprintf(stderr, "Poll1 waking up\n");
#endif
		// TODO: do what has to be done every 1000 milliseconds
		// Print Hello World! 10 times
		For (x = 0; x < 10; x++)
			printf("Hello World!\n");
	}
	// tell that this thread is dead
	gInit.htPoll1 = NULL_RTHANDLE;
}
リスト1 INtimeによるHello, Worldのサンプルプログラム

 実行すると図4のようにConsoleに10回“Hello, World!”を出力して終了するが、またすぐに起動して……の繰り返しとなる。APIがちょっと風変わりではあるが、それでも理解できる範囲である。

図4
図4 これはINtimeのリモートコンソールである

 INtimeの特徴というかメリットは、Windowsのエコシステムと共存できる点である。例えば、通信用のデバイスドライバをINtime用に開発しなくても、Windows用のドライバがあれば、INtimeカーネルの上で動いているアプリケーションからWindows側にGOBSnet経由で送り、Windows上のNTX DLLからWindowsのドライバ経由で通信を行うといったことが可能になる。

 といっても、全部が全部Windows任せだとオーバーヘッドが多いためか、ある程度はINtime側でも対応が進められている。例えばTCP/IPは標準装備だが、これに加えてTSNのサポートとRealtime Fieldbusプロトコルを幾つかサポートする。またIntel MKL(Math Kernel Library)およびIntel IPP(Integrated Performance Primitive)にも対応しており、MKL/IPPをそのまま使えるといったRTOSには珍しい対応も目に付く。ストレージはPATA/SATA/NVMeに対応、レガシーBIOSだけでなくUEFIにも対応している(当然Secure Bootにも対応する)。ファイルシステムも、INtime6ではFAT32でファイル名も8+3のみの対応だったが、INtime7ではUFS(Unix File System)の対応やUTF-8を利用したロングファイルネームの対応も果たすなど、大分使い勝手が改良されている。

 代理店による説明では、INtimeを利用することで、通常のPC環境で100μs周期のアプリケーションの稼働が可能になるとしており、こうした特殊な用途向けに現在も販売されている。一応連絡すると、Limited Time Licenseが付いた全コンポーネントを含む評価版が入手可能とのことなので、気になる方は連絡してみるとよいだろう。

Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る