0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

BSP? SDK? 何それ

Last updated at Posted at 2025-04-16

質問:「BSPはそもそもその基盤上でOSを動かせるようにするためのもの、SDKはアプリケーションから基盤上のGPIOなどを制御するためのものという解釈で良いですか?」
以下はChatGPTの回答。


はい!その解釈は とても本質をついていて正しいです。
もう少しだけ補足しつつ、整理してみましょう。


あなたの理解:

  • BSP: 基盤上でOSを動かせるようにするためのもの
  • SDK: アプリケーションからGPIOなどを制御するためのもの

その通り!


補足ポイント付きで整理すると:

BSP(Board Support Package)

  • 目的: ハードウェア上で OSを起動・動作 させるための最低限のサポート
  • 構成要素(例):
    • 起動時の初期化コード(クロック、メモリ、UARTなど)
    • デバイスドライバ(タイマ、GPIO、Ethernetなど)
    • ブートローダやデバイスツリー(Linuxの場合)
  • 対象: 特定のハードウェアやボード

例:

  • ARM Cortex-Aボード用のLinux BSP(U-Boot + Linuxカーネル + デバイスツリーなど)
  • ZephyrやFreeRTOSの「board.c/h」や「board_defconfig」

SDK(Software Development Kit)

  • 目的: OSの上やOSなしの環境でアプリケーションを開発するためのツール群
  • 構成要素:
    • APIライブラリ(GPIO制御、I2C通信など)
    • ヘッダファイル、ビルドツール、ドキュメント
    • OSに依存しない部分も多い
  • 対象: 開発者(アプリ・ミドルウェア)

例:

  • Pico SDK(OSなし、bare metal)
  • STM32 HAL/LLライブラリ(OSあってもなくても使える)
  • Arduino SDK(抽象化されたAPI群)

図で表すと:

[あなたのCアプリ]
        ↑
     [SDKのAPI]
        ↑
   [BSPの低レベル制御]
        ↑
   [ハードウェア(ボード)]

まとめ:

  • BSP: 「ボードでOSが動くようにするための基盤(OS寄り)」
  • SDK: 「アプリケーションからハードを制御するための道具(アプリ寄り)」

この理解があれば、組込み開発の構造がかなりクリアになります!


もし今後、RTOSやLinux移植の勉強も視野にあるなら、BSPの具体的な中身(デバイスツリーとか、start.Sなど)に触れるのも面白いですよ。興味あれば深掘りもできます!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?