SOLID FAQ
購入
使用環境
いいえ、SOLID Starter Kit やSOLID評価版、ラズパイ用SOLIDは所定の専用評価ボードでのみ利用できるパッケージであり、お客様が設計された機器での製品開発にはご利用いただけません。
SOLID-IDE のソリューションファイルやプロジェクトファイルは KMC が開発した独自のものなので、互換性はありません。
はい、同時に2つ以上のSOLID-IDEを起動して使用できます。
デバッグする場合はターゲットを区別する必要があるため、ホストPCに複数台のPARTNER-Jet2本体を接続したうえで、標準ツール バー の 「PARTNER 」から、接続するPARTNER-Jet2本体のシリアル番号を各々指定してください。
問題ありません。SOLID-IDEをインストールしたことにより、元々インストールされていたVisual Studioに影響を与えることもありません。
Starter Kit 用評価ボード
以下の4点がSOLID Starter Kit用評価ボード(AP-RZA-1A-KM)で変更した主な箇所です。
①USB給電
②USB Hostコネクタ実装
③SDカードはSPIで制御(SDアソシエーション非会員でもSDカードの機能が使用できます)
④コンソール用シリアルを、給電用USBで実装
ご購入販売店もしくは京都マイクロコンピュータにお問合わせください。
(ボード製造元のアルファプロジェクト様、アクセル様へのお問合せはご遠慮ください。)
IDE
ツールチェーン
Arm Cortex-A プロセッサ(32bit/64bit いずれも可)
Arm Cortex-R プロセッサ(SOLID 2.x 以降)
Arm Cortex-M プロセッサ(SOLID 2.x 以降)
SOLID-IDEのエディタを使ってコーディング作業中に文法エラーがあった場合、SOLID-コンパイラのチェックツールがバックグラウンドでそれを検出し、エディタ画面に表示する便利な機能(Intellisence checker)があります。ビルド操作をしなくてもこの機能は有効です。もちろん、ビルド時にも検出してレポートします。
SOLIDの静的解析は、プログラムが実行された場合に不具合となり得るコードを検出します。
一方のMISRA-Cルールチェッカは「不具合を起こしやすいコーディングの仕方を避ける」という目的で造られた規格に合致しているかを判定するツールです。プログラムに不具合が無くてもMISRA-Cルールチェッカでエラーになる場合があります。
静的解析とは、実際にプログラムを実行すること無しに、ソースコードの潜在的な不具合を検出する機能です。
未初期化変数のアクセスや、ゼロ除算などの検出が代表的なものです。
RTOS /ミドルウエア/ドライバ
はい SOLID 2.2.0 以降、Free RTOSでの開発が可能です。Free RTOS対応コードをご入用の際は、当社までお問合せください。
対応しているFree RTOSのバージョンや機能については、こちらをご覧ください。
SOLID-OSであるTOPPERSカーネルは、TOPPERSプロジェクトの活動趣旨に賛同されたうえで、無償で商用利用が可能です。
商用利用された場合は、お客様ご自身でその成果物をTOPPERSプロジェクトの利用報告ページ(TOPPERSプロジェクトのウェブサイトに移動します)に報告してください。
TOPPERSプロジェクトの利用報告をされる際に「開発成果物の選択」の箇所がありますので、こちらではお客様がご使用された
□TOPPERS/ASP3カーネル
□TOPPERS/FMPカーネル
□TOPPERS/FMP3カーネル
のいずれか、または両方を選択してください。
製品名や会社名は非公開の選択も可能です。
なおTOPPERSプロジェクトの利用報告内容に関しては、TOPPERSプロジェクトから当社に情報が通知されることはありません。またお客様から当社へのご報告も不要です。
Arm Cortex-A および Arm Cortex-Rシングルコア向け:TOPPERS/ASP3( Cortex-R は SOLID 2.x 以降)
Arm Cortex-A マルチコア向け:TOPPERS/FMP、TOPPERS/FMP3(FMP3は SOLID 2.x 以降)
MMUによるメモリ管理のためのプログラムをユーザーが作成するのではなく、SOLIDがメモリ管理プログラムを自動的に生成・実行するところが、従来のツールと最も異なる点です。
Linuxであれば、仮想アドレスで空間を多重化し、なおかつデマンドページングによって動的にメモリ割り当てを行うといった機能がありますが、RTOSの場合はリアルタイム性(再現性)を重視するので、空間の多重化は使用せず、SOLIDでは単一の大きな仮想アドレス空間にMMUを利用してプログラムを配置しています。
ユーザーによるSoCの構成に合わせた仮想アドレスの設定は、IDE側の簡単な操作をするだけ完了です。あとはSOLIDが自動的に生成するMMU制御プログラムが、RTOSカーネル、コンパイラ、デバッガやローダーなどと連携して動作する仕組みになっています。
また、何か問題が起きた時にプログラムがどうなっているかを確認するための、メモリマップデザイナー(物理空間のメモリ配置を表示する機能)もSOLID-IDEで用意しています。
メモリマップデザイナー
RTOSのタスクやセマフォなどの資源については、kernel_cfg.cを編集する事で変更できます。特に難しい変更は必要なく、資源の数やタスクのエントリなどをテーブルに設定するだけです。また、RTOSの大きな構成(FPU有効無効や資源動的生成ありなし)については、スターターキットでは、プロジェクト作成時のウイザードで、カーネル生成に必要な条件を選択するだけで、カーネル組込み済のプロジェクトが自動的に生成されます。
デバッガ
ひとつは、CPUの実行トレース機能を利用してユーザープログラムの実行履歴を取得し、その情報を元に、
「関数タイミング」「呼び出し参照(コンテキスト別集計)」「ソースカバレッジ」「関数プロファイル、関数履歴」
などを表示・解析する機能です。当社のQProbeがこれに相当します。
もうひとつは、ユーザープログラムに解析専用のランタイム(SOLIDコアサービス)を埋め込んで、プログラムを実行しているときに実際にエラーとなる可能性がある箇所を、ランタイムが検出する機能です。デバッガと連携して不具合を解析する仕組みであり、アドレスサニタイザがこれに相当します。
SOLID Starter Kitは必ず付属のPARTNER-JET2 デバッガと同時に使用してください。
ビルド操作を行うときは、PARTNER-JET2 デバッガをPCに接続し、デバッガの電源をONにしてください(ライセンスがPARTNER-Jet2本体に書き込まれているため)。
従来の不具合解析では、プログラムの動作に何らかの異常が症状となって初めて不具合を認識し、その原因をたどっていくというスタイルです。言い換えれば単体テストでは問題無かったプログラムが、結合テストでメモリ資源をつぶし合って不具合が表面化してしまうような効率の悪いデバッグです。
アドレスサニタイザを使う最大のメリットは、異常が表面化していなくても、不具合となる動作が発生した瞬間に専用のランタイムが問題を検出できる点で、評価作業の効率を大きく向上させます。
アドレスサニタイザに代表される、「本来アクセスしてはいけない領域のメモリアクセスを検出する機能」があります。実際にはC言語仕様的に間違ったメモリアクセスを検出する、になります。宣言した配列のオーバーランや、2バイトの変数への4バイトアクセス、また二重freeなどです。
アドレスサニタイザの動作
コアサービス
プログラムの規模が大きくなってくると、修正の度にプログラム全体をビルド・ロードする時間が開発者の負担になってきます。そのため、開発対象モジュール単体だけをロードする仕組みを設けたのが、SOLIDのローダーの最も大きな特徴のひとつです。
この仕組みを使うことで、共同開発の現場で「他者のソースコードが無くても自分のソースコードだけを編集してデバッグできる」「バージョン管理がシンプルに行える」といった多くのメリットがあります。
詳しくはインテリジェントローダーの解説をご覧ください。
「コアサービス」とは、当社がSOLID用に新しく作った一連のランタイムであり、主にターゲットのリソース(メモリ/MMU、割り込み、タイマ等)の管理と、ユーザーへの補助(ローダー、デバッグ)機能をつかさどっています。
コアサービスはターゲットシステムの一部に常駐しており、システムセットアップや動的解析機能を使ったデバッグ時など、必要に応じてIDEとも連携して動作するソフトウエアです。