5

CMSISファイルと周辺機器ドライバファイルに書かれているコードの種類。どうすればそれらを区別できますか? どんな例でもより役に立ちます。ありがとうございました。

4

2 に答える 2

5

「CMSIS」は、Cortex Microcontroller Software Interface Standardです。これは ARM 標準であるため、コードは Cortex 実装間で多かれ少なかれ移植可能である必要があります。

2 つの異なるベンダーがタイマーや UART ブロックなどをどのように実装するかについての標準がないため、一般に、周辺機器ライブラリはよりベンダー固有です。

少なくとも、これは STM32 ファミリの ARM を (ほとんど) 扱ってきた私の基本的な理解です。ただし、その CMSIS ページで、CMSIS の範囲が実際にはより広いことに気付きました。

CMSIS-Driver: ミドルウェア用の汎用ペリフェラル ドライバー インターフェイスを定義し、サポートされているデバイス間で再利用できるようにします。API は RTOS に依存せず、マイクロコントローラ周辺機器を、通信スタック、ファイル システム、またはグラフィック ユーザー インターフェイスなどを実装するミドルウェアに接続します。

ベンダー固有のコードに関連付けられていることを実行するように聞こえますが、おそらくすべてのベンダーが実際にCMSIS-Driver をまだ使用しているわけではありません。

更新: 私が使用した STM32:s では、GPIO は ST の周辺機器ライブラリのみを使用して管理されます。

とても簡単です。

  1. RCC_AHB1PeriphClockCmd()GPIO ペリフェラルのクロックを有効にするために使用します。たくさんの時計があるので、それを正しく行うようにしてください。すべての GPIO は AHB1にあると思います
  2. タイプの変数をGPIO_InitTypeDef呼び出しGPIO_StructInit()て初期化し、デフォルトを取得します。
  3. で本当にGPIO_InitTypeDef必要な設定を行い、必要に応じてデフォルトをオーバーライドします。
  4. 適切なポートを呼び出し、実際の設定GPIO_Init()でそれを渡します。GPIO_InitTypeDefこれにより、周辺機器のレジスタが突かれます。
  5. などの呼び出しを使用して、実際GPIO_SetBits()GPIO_ReadInputDataBit()GPIO ピンを使用します。
于 2014-09-05T08:52:10.783 に答える