2023年4月28日金曜日

[Linux][ドライバ]inodeの意味がやっと分かった

どうもこんにちは


今日もソフトウェアについてほのぼのと記載します。


現在は、以下の書籍を読んでいます。


・Linuxデバイスドライバプログラミング


10日ほどで140ページまで進みました。

約600ページあるのでまだまだです。

(技術書というのは速読できないものなのでしょうか。。。)


サンプルソースがしっかりとあるのはよいですね。


さて、ドライバソースを見ていてinodeというのがあり、よく分かっていなかったのですが、


本書を読み進めていくことで理解することが出来ました。


・inodeはメジャー番号とマイナー番号で構成されている。


・メジャー番号は、ドライバの種類を識別する番号

    spiドライバやら、tty(uart)のドライバ、i2cのドライバを識別するイメージです。


・マイナー番号は、1つのドライバ種類に設けられた識別番号

    ttyで言うと、CPUのピンにuartの機能が割り振られている。同じ機能のものが複数の端子についている。その識別番号です。

    →uart0,uart1のように識別出来る番号です。


出版された年が古いとはいえ、概念的なところではまだまだ使えそうです。

good


今回は以上です。

2023年4月8日土曜日

[zenfone] [容量なし] SDカードに内部データを移動できなかったのを解決しました

どうもこんにちは


今日もソフトウェアについてほのぼのと記載します。


最近、zenfone max m2を使用しているのですが、


アプリが殆ど入れられない状況に陥りました。


(残り容量が1GBを切りました。)


昔の端末だったら移動とかできたのに、なんでだろう。


ということで、移動できる方法を調べていましたら、以下が


参考になりました。


https://recoverit.wondershare.jp/sd-format-recovery/convert-sd-card-to-internal-storage-in-android.html


こちらを実行することで、アプリケーションを参照した時に、移動出来るボタンが発生しました。


設定アイコン→”アプリと通知”→”すべてのアプリ表示”

→何かのアプリ→”ストレージ”

で”変更”が出てきました。

これによって、内部共有ストレージからSDカードに移動できるようになりました。


以下は参考になればと思います。

(システムをいじるので、自己責任でお願いします)

  1. 作業前にzenfone max m2をパソコンとつないで、

sdカード内のデータをコピーしておきます。

  1. SDK Platform-Tools for Windows をgoogle検索してダウンロード

(私はwindows環境の為、こちらをダウンロードしました。)

  1. 解凍したディレクトリごと、ごっそり、

C:\Program Files\Android\Android Studio\platform-tools_r34.0.1-windows

としていれました。(ここは適当でいいのですが、今後も使えると思ってここにしてます。)

  1. ユーザの環境変数を開きます。(PC画面左下の検索で”環境変数”で検索すると出てきます。)

  2. Pathを選択して”編集”します

  3. “新規”→3のパス(”C:\Program Files\Android\Android Studio\platform-tools_r34.0.1-windows\platform-tools”)を登録します。これで、adbコマンドが実行できるようになる。

  4. zenfone max m2の”設定”アイコン→”端末情報”→”ビルド番号”

を10回くらい連打でデベロッパーモードにする。

  1. ”設定”アイコン→”システム”→”開発者向けオプション”を有効にする。USBデバッグを有効にする

  2. zenfone max m2とパソコンをUSB接続する。

  3. コマンドプロンプトを開く

  4. 先のリンク先にあるadbコマンドを実行していきます。

  5. しばらく待ちます。


これを行うことで、SDカードの容量は出なくなりますが、

移動できるようになりました。

お疲れさまでした。

2023年2月15日水曜日

[関数]関数ポインタの使い道

こんにちは


今日もソフトウェアについてほのぼのと記載します。


今回の案件は、


デバイスを制御する処理を

専用の一つのファイルで行い、

デバイスが変わったら他のファイルに差し替えて対応出来るようにしてください。

といった内容です。


こういった場合には、

ポインタ関数が有効です。


正直、この関数の使い道が今までよく分かっていませんでした。。


受託案件だと、一つのデバイスの対応がほとんどの為仕方ないということで。。。


呼び出し元は、飛ぼうとしている関数の先頭を知っていれば良く


呼び出し先は最後に呼び出し元に戻れるようにリターン命令があればよい


あとは、

デバイスが変わって関数名が変わっても飛び先を配列(テーブル)をにライトしておけば、飛べます。


2023年2月8日水曜日

[関数][重複]同じ機能なのに二カ所に存在

こんにちは


今日もソフトウェアについてほのぼのと記載します。


現在、他社が書いていたコードを見ているところです。


同じ関数名が別ファイルにstatic型で使われているのですが。。。


何故でしょうか?


C言語なので、同じに見えるクラスなだけ。


と言った概念はない筈なのですが。。


処理は一行あるかないかの違いでした。


意図しているのかたまたまなのか


これは、私を試していると言うことなのか。

2023年2月3日金曜日

[仕様書][設計書] 設計書の効果とは

こんにちは


今日もソフトウェアについてほのぼのと記載します。


現在、他社が書いていてエンドユーザが指摘していたソースを、私が所属している

会社がメンテナンスしている状況です。


1つのcソースファイルで、通信、フラッシュアクセス、ユーザインタフェースとして公開しているやらで、


3000行近いソースとなっていました。。。


それに対して今行っているのは


・ファイルを機能毎に分ける

・レイヤに分けてそれぞれの役割を割り振る


です。


現在、変更仕様書なるものを書いています

が、恥ずかしながら


在職中、書いたことがなかったです。


大手と中小の違いはこういうところなのでしょうか。


また、イメージをソースに書く前に


設計書としてエクセルシートにフローチャートを


書いていくのは必須のようで、


設計書レビューの時に認識を合わせやすくするのによいそうです。


納期があるのに時間がかかってしまうのは仕方ないのかしら。


どうすれば早く書けるのでしょう。




2023年1月29日日曜日

[仕様書] ヘッダファイルの使い方

こんにちは


今日もソフトウェアについてほのぼのと記載します。


現在、他社が書いていてエンドユーザが指摘していたソースを、私が所属している

会社がメンテナンスしている状況です。


指摘事項のうち、ヘッダファイルの扱いが参考になりました。


・ヘッダファイルはユーザに公開している仕様書のようなものです。


ということです。


お客さんはこのヘッダファイルだけ見てくださいね。

といった使い方を想定しているそうで、


内部処理は、ユーザーに意識させない造りにする必要があるとのことです。


仕様書にも、お客さんはこの章だけみてくださいね。


ということのようです。


基本的といえば基本的ですが、為になります。


2023年1月18日水曜日

[実装] 1つの戻り値のみならvoid型


こんにちは


今日もソフトウェアについてほのぼのと記載します。


現在、納品したソフトに対して、


量産版の為に設計をカスタマイズしています。


ソースの書き方で指摘を受けたのでメモします。



  • 関数の戻り値が1つしかないならvoid型にしてください。



残念ながら、今まで戻り値はvoidで定義することは殆どありませんでした。


エラーコードを必ず返すように作り込んでいて、


後々ソースを変更した時にエラーコードが追加されるかも。


と言ったことを意識していた為です。


ユーザに伺ったところ、以下のような意図があるようです。


  • 可読性で見ると、戻り値がvoidなら中身を見ずに済む


確かに、関数の中を追うのを考えると


手間かもしれませんね。