RaspberryPi ラズパイ(C言語)

ラズパイとC言語を使った「ライブラリの作成方法」

こんにちは!駆け出しエンジニアのまっきーです。

今回は。「I2Cを使ってLCDに文字を表示させる!②(C言語)」で作成したソースコードをもとに、LCDのライブラリを作成します。

ライブラリ作成の手順

  1. ヘッダーファイルの作成(拡張子.h)
  2. ライブラリのソースコード作成(拡張子.c)
  3. ライブラリを作成(拡張子.a)
  4. ビルドの設定

これだけの手順でライブラリを作成することができます。

ライブラリには

  • 静的ライブラリ:includeするだけですぐ使える
  • 共有ライブラリ:ライブラリをリンクする作業が必要

というように、2種類あります。今回は静的ライブラリの実装をします。

実際にやってみる

これから作成するファイルは、同じディレクトリに保存してください。(pi_practiceと仮定します)

ヘッダーファイルの作成

ファイル名を「lcdPi.h」として保存をします。

ここで定義した関数を自由に使えるようになります!

extern宣言」は複数ファイルによるシステムにおいて、グローバル変数を共有するための仕組みです。

ライブラリのソースコード作成

ファイル名を「lcdPi.c」として保存します。以下の2点に注意して下さい。

  • ・先ほど作成した"lcdPi.h"をincludeすること
  • ・main関数は入れないこと

ヘッダーファイルを囲むカッコには次のような意味があります。

「<>」デフォルトのディレクトリ(usr/include)から参照

「""」ソースコードの置かれているカレントディレクトリから参照

ライブラリを作成(拡張子.a)

図に従って操作していきます。使用するエディタは「Geany」です。

まず、lcdPi.cをコンパイルします。

画像に alt 属性が指定されていません。ファイル名: image-56.png

ターミナルの場合はこのコマンドでコンパイルできます。(ディレクトリに注意)

次に、ターミナルを開き以下のコマンドを入力します。

  • ・ar :書庫(アーカイブ)ファイルを作成する
  • ・r :アーカイブにメンバを追加
  • ・c :アーカイブの作成
  • ・s :シンボルテーブルを作成

ビルドの設定

「Geany」を使っている方は、以下の手順でビルド設定を変更してください

ビルドのビルドコマンドを設定を選択

画像に alt 属性が指定されていません。ファイル名: image-58.png

Buildコマンドを以下のように書き換える

画像に alt 属性が指定されていません。ファイル名: image-57-1024x190.png

ビルドをターミナルで行う方はこちら↓

以上でライブラリの作成は終了です。

では、実際に使ってみます。使用するライブラリ関数の仕様です。

ソースコード

ohayo

こんな感じでLCDに文字が表示されます。

まとめ

ライブラリ作成の手順を復習します。

  1. ヘッダーファイルの作成(拡張子.h)
  2. ライブラリのソースコード作成(拡張子.c)
  3. ライブラリを作成(拡張子.a)
  4. ビルドの設定

一度ライブラリを作ってしまえば、関数を呼び出すだけで簡単に使えて便利ですね!

汎用性を高くしないといけないところが難しいですね。今回のを例にすると、スレイブアドレス(0x27)をライブラリに含めてしまいました。

これだと、ほかのアドレスの時に対応できないですね。改善方法は模索中です。もしわかる方がいたら教えてください。

今回はこれで終わります!ありがとうございました。

-RaspberryPi, ラズパイ(C言語)

© 2020 まきろぐ Powered by AFFINGER5