time~派生開発、組み込み開発周りのこと。Package(以下、BSP)開発的なことをしています。このBSPという言葉の範囲は非常に広いので自分の理解をまとめておきます。BSPとは以下のWebサイトを引用します。Package;BSP)は、CPU上ボードで、OSを実行させるために必要なソフトウェアライブラリであり、ハードウェアの初期化処理、メモリマッピング処理、ブートローダ、シリアルやタイマなどのデバイスを動作させるためのコンフィギュレーションコードとデバイスドライバ(限定されたハードウエアを動作させるソフトウエア)などから構成されます。このことは、低レベルのシステム·ソフトウェアの深い知識、ハードウェアを完全に理解し、OSの内部の深い知識が必要となります。ポジティブワンでは、これらの設計における豊富な専門知識を持ったエンジニアがおり、ニーズに答えることが可能です。ポジティブワン株式会社この定義より、BSPの役割はCPUやHWの仕様をBSPというFW*1で吸収すること、となります。アプリケーションはBSPが用意したAPIを利用することで、HWの仕様を気にせずメモリ確保やデバイスの利用ができるようになります。「ハードウェアの初期化処理、メモリマッピング処理、~中略~などから構成されます。」とあり、この範囲は非常に広いです。コンフィギュレーションコードとデバイスドライバの開発は、基板上に載っているデバイス毎に必要になるため、各デバイス毎の知識が必要になります。基板上に多くのデバイスが載っていたら、その分だけ必要な知識は増加します。デバイスの知識獲得として、一般的なデバイスであれば仕様や制御方法などをWeb上で調べることができます。ある製品に向けた特注デバイスの場合、仕様はWeb上にはなくそのデバイスベンダーが提供する情報が頼りとなります。特注のため、仕様書の記述ミスやそもそもHWに不具合が残っていることなども想定されます。以下にBSPの位置づけイメージ図を示します。こちらのサイトでもBSP含むシステムのイメージ図が掲載されております。どのようなイメージ図が妥当なのか捉え方によって異なると思います。BSPはOSの一部とも考えられるような気もします。製品開発においては、HW、FW(BSP)、SW(アプリケーション)はそれぞれ前モデルの環境をベースとすることが多いです*2。そのため、変更差分に注目する開発となります。前モデルの環境をベースにするといっても、基板上にこれまでなかったデバイスが載る場合、そのデバイスに対するBSP開発という観点では新規開発となります。そのため、BSP開発では派生開発と新規開発の両方の側面を持っています。おわりにBSPに関してまとめました。ポイントとしては、BSPはHWの各デバイス毎に機能を開発すること、派生開発と新規開発両方の側面を持っていることの2点と考えます。Packageと名前がついているため、各デバイス毎に対応し包括的な機能を提供するのは当然なのですが、開発としてはすげぇ大変だよなぁと思う次第です。面白さや開発の価値があるとも思います。勉強会での...2019-02-16単体テストのPFDを修正しました。月別アーカイブ検索スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。