SOLID の機能
Visual Studio Shell ベースの IDE
実績豊富なVisual Studioを採用
SOLID用に専用実装をしているので、Visual Studioの別途導入や購入は必要なし
Visual Studioの高度な機能との連携
Visual StudioがClangコンパイラと連携して高度な機能を実現
入力リストを候補表示するインテリセンス
ソース編集時に、コンパイル時の問題を警告(入力時に自動的にバックグラウンドでコンパイラエンジンが動作)
Visual Studioによる快適なデバッグ
ブレーク箇所周辺で参照している変数を、ローカル・グローバル問わずに集めて表示する自動変数表示
SOLID-OSと連携し、タスク別の呼び出し参照表示
ARM CPU例外発生時に、例外発生箇所をポイント
タスクを認識したブレーク機能
RTOS TOPPERS
TOPPERS/ASP3,TOPPERS/FMPおよびTOPPERS/FMP3を採用
軽量コンパクトな最新のオープンソースITRON
ティックレスカーネル (ASP3, FMP3)
省電力性にすぐれる
usecオーダーの時間管理を効率的に実現
SMPカーネル (FMP, FMP3)
資源動的生成版カーネルと、よりコンパクトな静的生成版カーネルを用意
Cortex-A 32bit (ARMv7A, ARMv8AのAArch32互換モード), 64bit (ARMv8AのAArch64モード)をサポート
T-kernel相当の ITRON APIを追加サポート
ランタイムロイヤリティフリー
SOLID-IDEと密接に連携
スタックフェンス、スタック解析機能
システムコールトレーサ
タスク状況をIDEに表示
RTOSの資源表示
GCC/Clang コンパイラ
選べる二種類のコンパイラを同梱
実績豊富なGCCコンパイラ
先進的機能のClangコンパイラ
リンカは実績あるGNU binutilsを同梱
生成されるソフトウェアはGPLフリー
標準ライブラリは、ソースコードが付属
コンパイラの持つ豊富な機能も、SOLID-IDEと連携してかんたんに利用可能
メモリ管理機能
ARM Cortex-AシリーズのMMUを活用
仮想アドレスは使用するが、単一空間なので常に全てのメモリ空間が見えていてわかりやすい
生成されたプログラムについては、自動的にセクションに応じたプロテクションを設定
IDEメモリマップデザイナ
利用する仮想アドレスを設定しやすくするためのIDEメモリマップレイアウト機能
リンカスクリプトと連携
MMU初期化コードと連携
ELF ローダー
ELFローダーを標準提供
分割開発を可能にする本格的なELFローダを標準提供
双方向アドレス解決
二つのローダブルアプリ形式を提供
組込向けに特化した軽量動作のSOLID形式
固定アドレスで実行
組込でも使いやすいDLL形式
PICバイナリ
MMUを使って効率的にメモリ使用
ローディングにMMUを使ったプロテクション設定
自動デバッグ開始起動
SOLID-IDEと連携することで、ローディング時に自動的にデバッグ開始
軽量動作の実現
SOLIDツールチェインに、ターゲットシステム上の専用ローダーと連携した専用機能を追加
開発環境と実行環境の一体化で、実行時の負荷を削減
ROM上のプログラムを効率的にロードする専用ファイルシステム
ソースコード静的解析
静的解析機能を標準搭載
実行前にソースコードの分析を行い、論理的な問題を検出する静的解析機能
関数呼び出しや分岐条件を加味し、未初期化ポインタアクセスやゼロ除算など、様々な問題を指摘
IDEのビルド環境と連携しているので、#ifdefなどの条件もビルド設定がそのまま反映
簡単に使用可能
IDEのプロジェクトメニューを選択して実行するだけ
問題箇所と、問題に繋がる箇所をソース上でハイライト表示
アドレスサニタイザ
実行時の不正メモリアクセスを監視
Clangコンパイラの持つ機能と、ターゲットシステム上の検出ランタイム(KMC製)を組み合わせて実現
ローカル変数、グローバル変数について、オーバーランや未定義領域アクセスの問題検出が可能
memcpy()など連続するメモリアクセスであっても、専用ライブラリ(KMC製)の利用で、効率良く問題検出が可能