OSとファームウェアについて教えてください。
ハードウェア設計者(OS搭載未経験)ですがOSとファームウェアとの違いについて教えていただけないでしょうか?(ソフトについては詳しいことは分かりません)
(他の投稿を拝見しましたがパソコンを例にあげて説明されており、理解ができなかったので今回は自分の状況でご説明いたします。)
汎用CPU(SH4)ボード(周辺:SDRAM、フラッシュメモリ、USB、コンパクトフラッシュ)を設計いたしました。このボードは現在、SHの外部バス(アドレス、データ、コントロール)を外部ボードに接続して、外部ボードをコントロールしております。
そこで、ソフト設計者へC言語を使用して、周辺デバイス(CPUボード付属の周辺+外部ボード)をコントロールするソフトを製作してもらいましたが、すこし疑問が生まれております。
【質問】
A.下記1.項のソフトはデバイスドライバと言われる物で、ファーム
ウェアに属するものなのでしょうか?
B.下記1.項のドライバを例えば、FPGAで構成してCPUからは
ドライバの設定をしなくてもよく、あたかもSRAM接続のよう
にI/F回路が構築できた場合、FPGAの内部回路がデバイス
ドライバ(ファームウェア?)と解釈されるのでしょうか?
C.OSを搭載するという事は、ファームウェアと同様にCPUの開
始アドレスにOSを割り当てておく事になると思うのですが、O
Sをコンパクトフラッシュから起動させたい場合、ハード的に電
源投入後フラッシュメモリ起動であれば、フラッシュメモリにそ
の旨のソフト(起動プログラム?)を組み込む必要があるのでし
ょうか?
D.OSを搭載して、今回のように外部ボードをコントロールする
場合、どういった利点が見出せるのでしょうか?
(現在はリレーのONしている時間の設定は、オシロを見ながら
NOP命令?を入れたりして時間調整しております。)
E.OSを搭載して、ソフト設計すると言うことは周辺デバイスのド
ライバのファームウェアは準備されていて、単純な命令でレジス
タ設定を意識せずに使用できるのでしょうか?
F.あらゆるデバイスドライバを構築して、汎用性のあるファームウ
ェアを構成すれば、それも一つのOSと見なせるのでしょうか?
【ソフト構成内容】
1.例えばUSBデバイスを使用する場合、USBコントロールデバ
イスの設定(レジスタ設定、データ送受信)するソフト。
2.1.項で作成したソフトを活用して、USBポートを使用して
外部に接続しているボードのリレーをコントロールするソフト。
少し、技術者らしくない素人的な考え方ですが、なにとぞ教えてくださいませ。★説明が解りにくく大変申し訳ありません。