μITRONとは、リアルタイムOS(RTOS)の仕様の一つです。μITRONは、旧トロン協会によってAPIの仕様が策定され、現在はトロンフォーラムに管理されています。組み込み機器に要求されるリアルタイム性などの特長を持っています。
TRON(The Real-time Operating system Nucleus)とは
μITRONの前身となるTRON(読み方:トロン)プロジェクトは、東京大学の坂村健教授(当時)が主宰するTRONプロジェクトの派生プロジェクトとして1984年に誕生しました。TRONプロジェクトは組み込み用のリアルタイムアーキテクチャを開発するプロジェクトです。
TRON(読み方:トロン)とは
TRONプロジェクトとは、The Real-time Operating system Nucleusの略。組み込み用のリアルタイムアーキテクチャを開発するプロジェクト
μITRON以外にもBTRON、CTRON、JTRONといった様々な派生プロジェクトが存在しましたが、実質的に現存しているプロジェクトはμITRONだけです。μITRONの’I’はindustrialの略で産業用途向けに策定されたリアルタイムOSです。
- μITRONの前身はTRON
- μITRONの’I’はindustrialの略
- μITRONは産業用途向けに策定されている
μITRON(読み方:マイクロアイトロン)とは、TRONの一系統
μITRON(読み方:マイクロアイトロン)とは、組み込み機器向けのリアルタイムOS(以下、RTOS)の仕様の一つです。
リアルタイムOS(RTOS)とは
リアルタイムOS(RTOS)とは、要求される時間内に処理が実行できるシステム(=リアルタイムシステム)を構築するためのOSのこと。RTOSは、産業ロボットや輸送機械など、主に組み込み機器向けのOSとして使用されている。
RTOSの仕様にはいくつか種類がありますが、そのうちトロンフォーラムが仕様を定めているものの一つに「ITRON」という仕様があります。
μITRONは、そのITRONの一系統です。μITRONの特徴は、API仕様がオープンになっている点です。
μITRONの仕様は全て公開されており、誰でも自由にこの仕様を使ってオリジナルのμITRON仕様のRTOSを作ることができます。このため、様々な企業や団体が開発し、多くの機器に搭載されました。
ポイント
- μITRONは、組み込み機器向けのRTOSの仕様の一つ
- μITRONは、API仕様がオープンになっている
μITRONの4つの特徴
μITRONは、前述の通り、組み込み機器向けのRTOSの仕様です。
このためμITRONは、組み込み機器が要求するいくつかの仕様を満たしている、という特徴があります。
具体的には、μITRONの特徴としては、以下の4つの点があります。
- リアルタイム性を持つ
- マルチタスク実行が可能
- リソースをあまり消費しない
- ハードウェアに依存しない
リアルタイム性を持つ
μITRONの1つ目の特徴は、リアルタイム性を持つことです。
リアルタイム性とは
リアルタイム性とは、要求される期限までに処理を実行できる性質のこと。
組み込み分野では、処理の完了に期限が設定されます。
例えば、自動車に使用されている組み込みシステムを具体例として考えます。自動車には、自動車を制御するためのCPUが多く使用されています。これらのCPUは、エンジンの回転や、噴出するガソリンの量をコントロールします。
この時、もしも自動車のエンジン制御で規定された期限内に処理ができなければ、エンジンの停止が起こるかもしれません。これにより、事故が発生してしまうリスクもあります。
上記のように、多くの組み込み機器は、リアルタイム性を要求します。μITRONは、このようなリアルタイム性を持ち、組み込み機器に要求されるリアルタイム性を担保しています。
マルチタスク実行が可能
μITRONの2つ目の特徴は、マルチタスク実行が可能になることです。
タスクとは
タスクとは、OSが処理するプログラムの最小単位のこと。
マルチタスクとは
マルチタスクとは、複数のタスクを並列して処理するために、CPUを仮想化、多重化すること。
通常はシングルプロセッサシステムでは、1つのCPUにつき1つのタスクしか実行できません。このため、複数の処理を行いたい場合は、一つずつ順番に取り掛かるしかありません。
これに対しマルチタスクでは、複数のタスクを並列して処理できます。これにより、μITRONでは、組み込み機器が要求するリアルタイム性を担保しながら、多くのタスクを処理できるようになります。
リソースをあまり消費しない
μITRONの3つ目の特徴は、リソースをあまり消費しないことです。
多くの組み込み機器は、コストを極力下げるために、マイコンの基板面積や、フラッシュメモリ容量を最小限に抑えています。μITRONは、必要な機能に絞り込んでメモリを最小化することで、メモリ容量や性能に制限のあるマイコンでも搭載できます。
ハードウェアに依存しない
μITRONの4つ目の特徴は、ハードウェアに依存しないことです。
組み込み開発では、CPUや周辺ICの生産中止などに伴い、新しいCPUやICを選定し、ハードウェアを作り直すことがあります。
このため、多くの組み込み機器のプログラムには、移植性の高さが求められます。
μITRONを含むRTOSは、ハードウェアとアプリケーションの間に入り、ハードウェアとソフトウェアのデータ処理の受け渡しを行います。
この時、ハードウェアの違いをRTOSが吸収します。このため、ハードウェアの違いが、上位層のアプリケーションに影響せず、異なるハードウェアであっても同じように動作します。
その結果、移植性の高いプログラムを生成できます。
ポイント
- μITRONはリアルタイム性を持つ
- μITRONはマルチタスク実行が可能
- μITRONはリソースをあまり消費しない
- μITRONはハードウェアに依存しない
現在の仕様はμITRON4.0
μITRONは、全機能を引き継ぐ形でアップデートされており、2021年1月現在の最新仕様は、μITRON4.0となっています。
μITRON4.0の機能
μITRONは、具体的に以下の機能を持っています。
タスク管理機能(タスクスケジューリング) | タスクの実行順序を制御する機能 |
タスク付属同期機能 | タスクの状態を直接操作することによって同期する機能 |
同期・通信機能 | タスクとは独立した同期機能。セマフォ、イベントフラグ、メールボックスを含む |
割込み管理機能 | 外部割込みとCPU例外を対象に割込みハンドラを定義する機能 |
時間管理機能 | 時間に依存した処理を行う機能。システム時刻管理、周期ハンドラ、アラームハンドラを含む |
メモリ管理機能(メモリプール) | メモリプールの管理やメモリブロックの割当てを行う機能 |
システム状態管理機能 | システム全体の状態を設定・参照する機能 |
μITRON・Linux・Windowsの違い
μITRON・Linux・Windowsの違い・比較表
ここまでμITRONを紹介してきましたが、汎用OSとはどのような違いがあるのでしょうか。
μITRON・Linux・Windowsは、元々利用される目的が異なっていました。簡単に言えば、μITRONは機械を制御するOS、Windowsは人が機械を制御(man machine)するOS、Linux(Unix)はデータを処理するOSです。
以下の表が、μITRONと汎用OSであるLinuxやWindowsとの比較となります。
μITRON | Linux | Windows | |
---|---|---|---|
メモリ使用量 | 数Kバイト~1Mバイト | 数Mバイト~数十Mバイト | 数Mバイト~数十Mバイト |
利用できるCPU | 16bit〜64bit | 32bit以上 | 32bit以上 |
ライブラリ | 少ない | 豊富 | 豊富 |
リアルタイム性能 | 高い | 低い | 低い |
利用目的 | 機械を制御 | 人が機械を制御 | データを処理 |
詳細については、以下の記事をご覧ください。
μITRONのシステムコール(サービスコール)一覧
次に、μITRONのシステムコールを見ていきます。
システムコールとは
実行中のプログラムがOSの機能を呼び出すために使用する仕組みのこと。また、その命令や関数などのAPIを指す。
μITRON4.0仕様では、このシステムコールのことを「サービスコール」と呼びます。
μITRON4.0のシステムコールは、トロンフォーラムが公開している「μITRON 4.0仕様書」で確認できます。
μITRON4.0のシステムコールは、以下の通りです。
タスク管理機能
ER ercd = cre_tsk ( ID tskid, T_CTSK *pk_ctsk ) ;
ER_ID tskid = acre_tsk ( T_CTSK *pk_ctsk ) ;
ER ercd = del_tsk ( ID tskid ) ;
ER ercd = act_tsk ( ID tskid ) ;
ER ercd = iact_tsk ( ID tskid ) ;
ER_UINT actcnt = can_act ( ID tskid ) ;
ER ercd = sta_tsk ( ID tskid, VP_INT stacd ) ;
void ext_tsk ( ) ;
void exd_tsk ( ) ;
ER ercd = ter_tsk ( ID tskid ) ;
ER ercd = chg_pri ( ID tskid, PRI tskpri ) ;
ER ercd = get_pri ( ID tskid, PRI *p_tskpri ) ;
ER ercd = ref_tsk ( ID tskid, T_RTSK *pk_rtsk ) ;
ER ercd = ref_tst ( ID tskid, T_RTST *pk_rtst ) ;
出典:μITRON4.0仕様書(Ver.4.03.03)321ページ
タスク付属同期機能
ER ercd = slp_tsk ( ) ;
ER ercd = tslp_tsk ( TMO tmout ) ;
ER ercd = wup_tsk ( ID tskid ) ;
ER ercd = iwup_tsk ( ID tskid ) ;
ER_UINT wupcnt = can_wup ( ID tskid ) ;
ER ercd = rel_wai ( ID tskid ) ;
ER ercd = irel_wai ( ID tskid ) ;
ER ercd = sus_tsk ( ID tskid ) ;
ER ercd = rsm_tsk ( ID tskid ) ;
ER ercd = frsm_tsk ( ID tskid ) ;
ER ercd = dly_tsk ( RELTIM dlytim ) ;
出典:μITRON4.0仕様書(Ver.4.03.03)321ページ
タスク例外処理機能
ER ercd = def_tex ( ID tskid, T_DTEX *pk_dtex ) ;
ER ercd = ras_tex ( ID tskid, TEXPTN rasptn ) ;
ER ercd = iras_tex ( ID tskid, TEXPTN rasptn ) ;
ER ercd = dis_tex ( ) ;
ER ercd = ena_tex ( ) ;
BOOL state = sns_tex ( ) ;
ER ercd = ref_tex ( ID tskid, T_RTEX *pk_rtex ) ;
出典:μITRON4.0仕様書(Ver.4.03.03)321ページ
同期・通信機能
セマフォ
ER ercd = cre_sem ( ID semid, T_CSEM *pk_csem ) ;
ER_ID semid = acre_sem ( T_CSEM *pk_csem ) ;
ER ercd = del_sem ( ID semid ) ;
ER ercd = sig_sem ( ID semid ) ;
ER ercd = isig_sem ( ID semid ) ;
ER ercd = wai_sem ( ID semid ) ;
ER ercd = pol_sem ( ID semid ) ;
ER ercd = twai_sem ( ID semid, TMO tmout ) ;
ER ercd = ref_sem ( ID semid, T_RSEM *pk_rsem ) ;
出典:μITRON4.0仕様書(Ver.4.03.03)322ページ
イベントフラグ
ER ercd = cre_flg ( ID flgid, T_CFLG *pk_cflg ) ;
ER_ID flgid = acre_flg ( T_CFLG *pk_cflg ) ;
ER ercd = del_flg ( ID flgid ) ;
ER ercd = set_flg ( ID flgid, FLGPTN setptn ) ;
ER ercd = iset_flg ( ID flgid, FLGPTN setptn ) ;
ER ercd = clr_flg ( ID flgid, FLGPTN clrptn ) ;
ER ercd = wai_flg ( ID flgid, FLGPTN waiptn, MODE wfmode,
FLGPTN *p_flgptn ) ;
ER ercd = pol_flg ( ID flgid, FLGPTN waiptn, MODE wfmode,
FLGPTN *p_flgptn ) ;
ER ercd = twai_flg ( ID flgid, FLGPTN waiptn, MODE wfmode,
FLGPTN *p_flgptn, TMO tmout ) ;
ER ercd = ref_flg ( ID flgid, T_RFLG *pk_rflg ) ;
出典:μITRON4.0仕様書(Ver.4.03.03)322ページ
データキュー
ER ercd = cre_dtq ( ID dtqid, T_CDTQ *pk_cdtq ) ;
ER_ID dtqid = acre_dtq ( T_CDTQ *pk_cdtq ) ;
ER ercd = del_dtq ( ID dtqid ) ;
ER ercd = snd_dtq ( ID dtqid, VP_INT data ) ;
ER ercd = psnd_dtq ( ID dtqid, VP_INT data ) ;
ER ercd = ipsnd_dtq ( ID dtqid, VP_INT data ) ;
ER ercd = tsnd_dtq ( ID dtqid, VP_INT data, TMO tmout ) ;
ER ercd = fsnd_dtq ( ID dtqid, VP_INT data ) ;
ER ercd = ifsnd_dtq ( ID dtqid, VP_INT data ) ;
ER ercd = rcv_dtq ( ID dtqid, VP_INT *p_data ) ;
ER ercd = prcv_dtq ( ID dtqid, VP_INT *p_data ) ;
ER ercd = trcv_dtq ( ID dtqid, VP_INT *p_data, TMO tmout ) ;
ER ercd = ref_dtq ( ID dtqid, T_RDTQ *pk_rdtq ) ;
出典:μITRON4.0仕様書(Ver.4.03.03)322ページ
メールボックス
ER ercd = cre_mbx ( ID mbxid, T_CMBX *pk_cmbx ) ;
ER_ID mbxid = acre_mbx ( T_CMBX *pk_cmbx ) ;
ER ercd = del_mbx ( ID mbxid ) ;
ER ercd = snd_mbx ( ID mbxid, T_MSG *pk_msg ) ;
ER ercd = rcv_mbx ( ID mbxid, T_MSG **ppk_msg ) ;
ER ercd = prcv_mbx ( ID mbxid, T_MSG **ppk_msg ) ;
ER ercd = trcv_mbx ( ID mbxid, T_MSG **ppk_msg, TMO tmout ) ;
ER ercd = ref_mbx ( ID mbxid, T_RMBX *pk_rmbx ) ;
出典:μITRON4.0仕様書(Ver.4.03.03)322ページ
メッセージバッファ
ER ercd = cre_mbf ( ID mbfid, T_CMBF *pk_cmbf ) ;
ER_ID mbfid = acre_mbf ( T_CMBF *pk_cmbf ) ;
ER ercd = del_mbf ( ID mbfid ) ;
ER ercd = snd_mbf ( ID mbfid, VP msg, UINT msgsz ) ;
ER ercd = psnd_mbf ( ID mbfid, VP msg, UINT msgsz ) ;
ER ercd = tsnd_mbf ( ID mbfid, VP msg, UINT msgsz, TMO tmout ) ;
ER_UINT msgsz = rcv_mbf ( ID mbfid, VP msg ) ;
ER_UINT msgsz = prcv_mbf ( ID mbfid, VP msg ) ;
ER_UINT msgsz = trcv_mbf ( ID mbfid, VP msg, TMO tmout ) ;
ER ercd = ref_mbf ( ID mbfid, T_RMBF *pk_rmbf ) ;
出典:μITRON4.0仕様書(Ver.4.03.03)323ページ
ランデブ
ER ercd = cre_por ( ID porid, T_CPOR *pk_cpor ) ;
ER_ID porid = acre_por ( T_CPOR *pk_cpor ) ;
ER ercd = del_por ( ID porid ) ;
ER_UINT rmsgsz = cal_por ( ID porid, RDVPTN calptn, VP msg,
UINT cmsgsz ) ;
ER_UINT rmsgsz = tcal_por ( ID porid, RDVPTN calptn, VP msg,
UINT cmsgsz, TMO tmout ) ;
ER_UINT cmsgsz = acp_por ( ID porid, RDVPTN acpptn, RDVNO *p_rdvno,
VP msg ) ;
ER_UINT cmsgsz = pacp_por ( ID porid, RDVPTN acpptn,
RDVNO *p_rdvno, VP msg ) ;
ER_UINT cmsgsz = tacp_por ( ID porid, RDVPTN acpptn,
RDVNO *p_rdvno, VP msg, TMO tmout ) ;
ER ercd = fwd_por ( ID porid, RDVPTN calptn, RDVNO rdvno, VP msg,
UINT cmsgsz ) ;
ER ercd = rpl_rdv ( RDVNO rdvno, VP msg, UINT rmsgsz ) ;
ER ercd = ref_por ( ID porid, T_RPOR *pk_rpor ) ;
ER ercd = ref_rdv ( RDVNO rdvno, T_RRDV *pk_rrdv ) ;
出典:μITRON4.0仕様書(Ver.4.03.03)323ページ
メモリプール管理機能
固定長メモリプール
ER ercd = cre_mpf ( ID mpfid, T_CMPF *pk_cmpf ) ;
ER_ID mpfid = acre_mpf ( T_CMPF *pk_cmpf ) ;
ER ercd = del_mpf ( ID mpfid ) ;
ER ercd = get_mpf ( ID mpfid, VP *p_blk ) ;
ER ercd = pget_mpf ( ID mpfid, VP *p_blk ) ;
ER ercd = tget_mpf ( ID mpfid, VP *p_blk, TMO tmout ) ;
ER ercd = rel_mpf ( ID mpfid, VP blk ) ;
ER ercd = ref_mpf ( ID mpfid, T_RMPF *pk_rmpf ) ;
出典:μITRON4.0仕様書(Ver.4.03.03)324ページ
可変長メモリプール
ER ercd = cre_mpl ( ID mplid, T_CMPL *pk_cmpl ) ;
ER_ID mplid = acre_mpl ( T_CMPL *pk_cmpl ) ;
ER ercd = del_mpl ( ID mplid ) ;
ER ercd = get_mpl ( ID mplid, UINT blksz, VP *p_blk ) ;
ER ercd = pget_mpl ( ID mplid, UINT blksz, VP *p_blk ) ;
ER ercd = tget_mpl ( ID mplid, UINT blksz, VP *p_blk, TMO tmout ) ;
ER ercd = rel_mpl ( ID mplid, VP blk ) ;
ER ercd = ref_mpl ( ID mplid, T_RMPL *pk_rmpl ) ;
出典:μITRON4.0仕様書(Ver.4.03.03)324ページ
時間管理機能
システム時刻管理
ER ercd = set_tim ( SYSTIM *p_systim ) ;
ER ercd = get_tim ( SYSTIM *p_systim ) ;
ER ercd = isig_tim ( ) ;
出典:μITRON4.0仕様書(Ver.4.03.03)324ページ
周期ハンドラ
ER ercd = cre_cyc ( ID cycid, T_CCYC *pk_ccyc ) ;
ER_ID cycid = acre_cyc ( T_CCYC *pk_ccyc ) ;
ER ercd = del_cyc ( ID cycid ) ;
ER ercd = sta_cyc ( ID cycid ) ;
ER ercd = stp_cyc ( ID cycid ) ;
ER ercd = ref_cyc ( ID cycid, T_RCYC *pk_rcyc ) ;
出典:μITRON4.0仕様書(Ver.4.03.03)324ページ
周期ハンドラ
ER ercd = cre_cyc ( ID cycid, T_CCYC *pk_ccyc ) ;
ER_ID cycid = acre_cyc ( T_CCYC *pk_ccyc ) ;
ER ercd = del_cyc ( ID cycid ) ;
ER ercd = sta_cyc ( ID cycid ) ;
ER ercd = stp_cyc ( ID cycid ) ;
ER ercd = ref_cyc ( ID cycid, T_RCYC *pk_rcyc ) ;
出典:μITRON4.0仕様書(Ver.4.03.03)324ページ
アラームハンドラ
ER ercd = cre_alm ( ID almid, T_CALM *pk_calm ) ;
ER_ID almid = acre_alm ( T_CALM *pk_calm ) ;
ER ercd = del_alm ( ID almid ) ;
ER ercd = sta_alm ( ID almid, RELTIM almtim ) ;
ER ercd = stp_alm ( ID almid ) ;
ER ercd = ref_alm ( ID almid, T_RALM *pk_ralm ) ;
出典:μITRON4.0仕様書(Ver.4.03.03)324ページ
オーバランハンドラ
ER ercd = def_ovr ( T_DOVR *pk_dovr ) ;
ER ercd = sta_ovr ( ID tskid, OVRTIM ovrtim ) ;
ER ercd = stp_ovr ( ID tskid ) ;
ER ercd = ref_ovr ( ID tskid, T_ROVR *pk_rovr ) ;
出典:μITRON4.0仕様書(Ver.4.03.03)325ページ
システム状態管理機能
ER ercd = rot_rdq ( PRI tskpri ) ;
ER ercd = irot_rdq ( PRI tskpri ) ;
ER ercd = get_tid ( ID *p_tskid ) ;
ER ercd = iget_tid ( ID *p_tskid ) ;
ER ercd = loc_cpu ( ) ;
ER ercd = iloc_cpu ( ) ;
ER ercd = unl_cpu ( ) ;
ER ercd = iunl_cpu ( ) ;
ER ercd = dis_dsp ( ) ;
ER ercd = ena_dsp ( ) ;
BOOL state = sns_ctx ( ) ;
BOOL state = sns_loc ( ) ;
BOOL state = sns_dsp ( ) ;
BOOL state = sns_dpn ( ) ;
ER ercd = ref_sys ( T_RSYS *pk_rsys ) ;
出典:μITRON4.0仕様書(Ver.4.03.03)325ページ
割込み管理機能
ER ercd = def_inh ( INHNO inhno, T_DINH *pk_dinh ) ;
ER ercd = cre_isr ( ID isrid, T_CISR *pk_cisr ) ;
ER_ID isrid = acre_isr ( T_CISR *pk_cisr ) ;
ER ercd = del_isr ( ID isrid ) ;
ER ercd = ref_isr ( ID isrid, T_RISR *pk_risr ) ;
ER ercd = dis_int ( INTNO intno ) ;
ER ercd = ena_int ( INTNO intno ) ;
ER ercd = chg_ixx ( IXXXX ixxxx ) ;
ER ercd = get_ixx ( IXXXX *p_ixxxx ) ;
出典:μITRON4.0仕様書(Ver.4.03.03)325ページ
サービスコール管理機能
ER ercd = def_svc ( FN fncd, T_DSVC *pk_dsvc ) ;
ER_UINT ercd = cal_svc ( FN fncd, VP_INT par1, VP_INT par2, …) ;
出典:μITRON4.0仕様書(Ver.4.03.03)325ページ
システム構成管理機能
ER ercd = def_exc ( EXCNO excno, T_DEXC *pk_dexc ) ;
ER ercd = ref_cfg ( T_RCFG *pk_rcfg ) ;
ER ercd = ref_ver ( T_RVER *pk_rver ) ;
出典:μITRON4.0仕様書(Ver.4.03.03)326ページ
ITRON・μITRONのシェア
以下は、トロンフォーラムが行った「2019年度組み込みシステムにおけるリアルタイムOSの利用動向に関するアンケート調査報告書」の結果です。
出典:組み込みOSのAPIはTRON系OSがシェア60%、24年連続トップ
μITRONを含むITRON仕様のRTOSが1位であり、45%のシェアを占めています。
ITRONは、以下の2つのメリットがあります。
- OSの仕様が特定の会社の利益や特定の国の政策に縛られない
- 仕様がオープンになっているため利用者が手を加えられる
このため、シェアがトップであると考えられます。
μITRONはなぜ使い続けられているのか?
μITRON仕様のRTOSは、登場からすでに35年以上を経過していますが、いまだに多くの機器で採用されています。それはなぜでしょうか?
RTOSのコア部分であるカーネルの機能は小さく、たとえCPUが高性能化されても、ソフトウェアの動作原理は変わりません。したがってカーネル部分の構造を大きく変える必要がありません。
周辺デバイスは新しい仕様のものが逐次登場していますが、こちらはカーネルではなくデバイスドライバやミドルウェアのサポートによって対応しています。このため、カーネルはほとんど同じ仕様で長く使うことができます。
また、マルチコア対応のCPUが増えたことで、μITRONのRTOSを複数のコアで動作させたり、Linuxを共存させるマルチOSなども登場しています。
以上のことから、μITRONが使い続けられている理由は、以下の通りです。
- CPUを高性能化しても、カーネル部分の構造を大きく変える必要がない
- 周辺デバイスを変更しても、カーネルはほとんど同じ仕様で長く使用できる
μITRON仕様ベースのOS一覧
μITRON仕様ベースに準拠した主なRTOSの種類として、以下が挙げられます。
- UDEOS4/Lite
- TOPPERS/JSP カーネル
- μC3(マイクロ・シー・キューブ)/Compact(弊社製品)
- μC3(マイクロ・シー・キューブ)/Standard(弊社製品)
- μC3(マイクロ・シー・キューブ)/Standard+M(弊社製品)
- μC3(マイクロ・シー・キューブ)+Linux(弊社製品)
弊社製品「μC3(マイクロ・シー・キューブ)」のご紹介
マイコン向け超軽量カーネルを採用したRTOS「μC3(マイクロ・シー・キューブ)/Compact」
μC3(マイクロ・シー・キューブ)/Compactは、マイコン内蔵の小さなメモリだけで動作するように最適化された、コンパクトなμITRON4.0仕様のRTOSです。
μC3/Compactは、ソースコードに直接コンフィグレーションを行うのではなく、付属のコンフィグレータによりGUIベースでRTOS、TCP/IP、デバイスのコンフィグレーションからベースコードの自動生成まで行います。
- 小さいフットプリント
- マイコンの小さなROM/RAMのみで動作するように最適化された最小2.4Kbyteのコンパクトなカーネル。メモリ容量が小さい安価なデバイスを使用する事ができます。
- μC3/Configurator付属
- 選択・設定するだけでベースコードが生成できるコンフィギュレーションツール。開発時間の大幅な短縮や、コーディングミスの減少が可能。RTOSの初心者でも簡単に開発をスタートすることができます。
- 豊富なCPUサポート
- 業界随一のCPUサポート実績があり、技術サポートも充実しています。CPUの選択肢を広げ、機会費用を抑える事ができます。業界随一のCPUサポート実績があり、技術サポートも充実しています。ご使用予定のデバイスで直ぐに開発着手が可能で、ご質問に対して24時間以内の1次回答を徹底しています。
- 省電力対応
- デフォルトで省電力機能がついているため、システム全体の省電力に貢献します。
詳しい資料をご希望の方は、下記より製品ガイドをダウンロードしてください。
高性能リアルタイム処理向けRTOS「μC3(マイクロ・シー・キューブ)/Standard」
μC3(マイクロ・シー・キューブ)/Standardは、μITRON4.0のスタンダードプロファイルをベースに、32/64ビットプロセッサが搭載された組込みシステム向けのRTOSです。
μC3/Standardは、高性能プロセッサがより高度なリアルタイム制御に耐えられるよう、割込み禁止時間を極力なくし、割込み応答性を最重要課題として設計したRTOSです。
ARM Cortex-Aシリーズ、ARM Cortex-Rシリーズだけでなく、高性能な ARM Cortex-MやRenesas RXシリーズにも対応しています。
- 32/64bitの高性能プロセッサに最適化
- 割り込み応答性を高め、32/64bitの高性能プロセッサ向けに最適化されたμITRON4.0仕様のカーネル。
- 豊富なプロセッサ・サポート
- 業界随一のプロセッササポート実績があり、技術サポートも充実しています。CPUの選択肢を広げ、機会費用を抑える事ができます。業界随一のCPUサポート実績があり、技術サポートも充実しています。ご使用予定のデバイスで直ぐに開発着手が可能で、ご質問に対して24時間以内の1次回答を徹底しています。
- マルチコア対応
- 組込み機器向けに最適なAMP型カーネル。マルチコアによって、リアルタイム性能を強化します。
- 豊富なデバイスドライバを用意
- I2C, SPI, GPIO, SDなどのデバイスドライバをオプションで用意。(UART, Timer, INTCはμC3に、EthernetドライバはμNet3に付属しています。)
詳しい資料をご希望の方は、下記より製品ガイドをダウンロードしてください。
マルチコアAMP拡張版RTOS「μC3(マイクロ・シー・キューブ)/Standard+M」
μC3/Standard+Mは、μC3/StandardにAMP型のマルチコア拡張を追加したマルチコアプロセッサ向けのリアルタイムOSです。
μITRON4.0のスタンダード・プロファイルをベースに、AMP型の特徴を活かしたコア毎の処理・リソースの割り当て、コア間連携のためのAPIを追加しています。
ARM Cortex-Aシリーズを中心にマルチコアのMPUをサポートしています。
- リアルタイム処理に最適なAMP型カーネル
- 自由にタスクや資源を各CPUに割り当てることで、システムの負荷分散が容易に実現できます。
- μITRON APIによるCPU間通信機能
- タスク間通信などの機能をCPU間通信でも実現ができ、シングルコアと同様にプログラミングができます。
- 一括リンクによるコード効率の向上
- コア別のプログラムを一括リンクすることで、より効率の良いプラグラミングができます。
- 多彩なミドルウェアや豊富なデバイスドライバを用意
- μC3/Standard対応のミドルウェアやデバイスドライバを利用できます。
詳しい資料をご希望の方は、下記より製品ガイドをダウンロードしてください。
LinuxとRTOSの共存ソリューション「μC3(マイクロ・シー・キューブ)+Linux」
μC3+LinuxはマルチコアCPUにLinuxとRTOSを共存させ、OS間の通信を可能にするソリューションです。
種類の異なった2つのOSを共存させることで、RTOSのリアルタイム性能とLinuxが持つ豊富なソフトウェア資産を有効に活用することができます。
- 異なったタイプのマルチコアCPUに対応
- ホモジニアス(同一プロセッサ・コアによる構成)とヘテロジニアス(異なるプロセッサ・コアによる構成)の両方に対応しています。
- メーカー提供のLinuxディストリビューションに対応
- CPUベンダーが標準でサポートするLinuxに対応し、アプリケーションの開発が迅速にできます。
- OS間通信をサポート
- メッセージ形式のAPI(RPMsg)を使って、OS間の通信を容易に実現できます。
- OpenAMP仕様を採用
- Multicore Associationによって標準化されたOpenAMPの仕様に対応しています。
- RTOSによる高速ブート
- μC3を先に起動することで高速起動ができます。
詳しい資料をご希望の方は、下記より製品ガイドをダウンロードしてください。
μC3のライセンスの種類・詳細
ライセンスの種類
ライセンスの種類は3つあります。
- 研究開発用プロジェクトライセンス
- 開発量産用プロジェクトライセンス
- プラットフォームライセンス
研究開発用プロジェクトライセンス
研究開発用プロジェクトライセンスは、研究開発のみ可能なライセンスです。ライセンス購入時の段階で、製品化まで見えていない場合や、フィジビリティスタディの場合にお勧めです。
研究開発用プロジェクトライセンスのライセンス費用は、このあとご紹介する開発量産用プロジェクトライセンスの60%の価格です。
有償の保守契約に加入中の場合、開発量産用プロジェクトライセンスのライセンス費用の40%オフの価格でアップグレードが可能です。
開発量産用プロジェクトライセンス
開発量産用プロジェクトライセンスは、研究開発から量産販売までが可能な標準的なライセンスとなります。開発量産用プロジェクトライセンスの対象製品の範囲には、1種類の製品型番だけでなく、その製品ファミリ(派生機種)が含まれます。
有償の保守契約に加入中の場合、プラットフォームライセンスのライセンス費用との差額でアップグレードが可能です。
プラットフォームライセンス
プラットフォームライセンスは、プロジェクトライセンスの対象範囲を広げたライセンスです。プラットフォームライセンスの対象製品は、1種類の製品ファミリだけでなく、複数の製品ファミリが範囲となります。サイトライセンスではございません。
※弊社のライセンスはプロジェクトライセンスの形式を採っております。ご購入時に該当プロジェクトの名称をご登録頂く必要があり、その際、「計測機器」などの抽象的な名称ではなく、具体的な名称を頂戴しております。
お客様のご要望をお聞きした上で適切な範囲を設定させて頂きますので、先ずは、担当営業にご相談下さい。
ポイント
- 研究開発用プロジェクトライセンス:製品化まで見えていない場合や、フィジビリティスタディの場合にお勧めなライセンス
- 開発量産用プロジェクトライセンス:研究開発から量産販売までが可能な標準的なライセンス
- プラットフォームライセンス :1種類の製品ファミリだけでなく、複数の製品ファミリを範囲とするライセンス
ライセンスの詳細
- ライセンス費用の金額・計算方法:ライセンス購入時の固定の一括払いのみでご使用いただけます
- 開発人数制限 :無(ただし同プロジェクト内)
- 提供形態 :ソースコード
- 使用範囲 :定義されたプロジェクト内
- 使用CPU :型番固定ではなくCPUシリーズ(例:STM32F4シリーズ)
- μC3/ConfiguratorはCPUシリーズ毎に用意されています
ライセンスの価格などの詳細については、下記よりプロダクトガイドをダウンロードしてご覧ください。
保守について
製品定価には契約日の翌月1日から6ヶ月分の無償保守が含まれています。その後、有償で保守を継続することが可能です。
また、年間保守費用は製品定価の40%になります。
無償保守期間終了後、継続して有償保守サービスにご加入いただいた場合は、製品定価の20%になります。(ただし、初年度分の保守とライセンスをセットで購入された場合は、初年度分に限り製品定価の15%になります。)
*研究開発用プロジェクトライセンスの保守費用は開発量産用プロジェクトライセンスの定価の20%になります。
保守サービスには以下が含まれています。
- メールによる技術サポート(1営業日以内に1次回答)
- 製品の無償バージョンアップ