みつきんのメモ

組み込みエンジニアです。Interface誌で「Yocto Projectではじめる 組み込みLinux開発入門」連載中

2015-01-01から1ヶ月間の記事一覧

可変幅のバイトスワップ

unionに入れてひっくり返したり、マクロでセコセコとシフトしたりするのは よく見かけるけどどれも使いづらいし、バイト長毎に作ったりする必要があったりする。 unionの例 union { struct { uint8_t b4,b3,b2,b1; } b; uint32_t l; }; 使いづらい。 マクロ…

任意のビットを任意のビット幅で取得する。

ビットマスクとシフトを組み合わせて実現してみたのでメモ。 組み込みで何かする場合や、PCでもハードウェアからのデータなどビットでパッキングされたデータを扱う場合に欲しくなる。 マクロの例 普段はマクロで実現したりする。 #define GET_4BITS(v, s) (…

バイナリ列をstd::ifstreamで読み込む。

バイナリのみのデータをstd::ifstreamで読み込む時にはまったのでメモ。 # 意外とというか忘れている。。。 バイナリデータの読み込み(失敗) 例えば32bitのデータが連続している下記のようなデータがある。 test.dat 12345678 00112233 44556677 8899aabb cc…

autotoolsでmake check

テストを実行させるときにmake checkで行うという慣習があるらしく 今さらだがautotoolsでそれを組み込む方法を試してみたのでメモ。 ディレクトリ構成 . ├── Makefile.am ├── configure.ac ├── src │ └ foo.h └── test ├── Makefile.am └── foo_test.cpp sr…

boost program optionsを使ってみた。

まずはチュートリアルを読む。 基本的な使い方 基本的な使い方は以下のようになる。 オプションを定義。"help,h"は「--helpと-h」の意味。 argc, argvをパースして定義したオプションと関連付けし、variable_mapを生成。 variable_mapに、定義したオプション…

raspberrypiでメディアサーバ(その2)

raspberrypi+yoctoでNAS+メディアサーバを構築した話の続き。 その際にハマった点や修正方法を記述する。 最終的には採用しなかった修正なども含まれるが、その際は採用しなかった旨を記述する。 なぜyoctoか? yoctoprojectがどういうものであるか?などに…

Ubuntu 14.04でGLFW3.1

試してみたところ、少し引っかかったのでメモ。 下準備 ここにしたがって下記をインストール。 $ sudo apt-get xorg-dev $ sudo apt-get install glu1-meas-dev インストール $ git clone https://github.com/glfw/glfw.git $ mkdir build $ cd build/ $ cma…

raspberrypiでメディアサーバ(その1)

raspberrypi+yoctoでNAS+メディアサーバを構築した話。 その際にハマった点や修正方法を記述する。 最終的には採用しなかった修正なども含まれるが、その際は採用しなかった旨を記述する。 なぜyoctoか? yoctoprojectがどういうものであるか?などについて…

関数の入り口出口でデバッグログ

関数の入り口と出口でログ出力したいが、 1関数につき必ず2行以上ログのコードを入れる必要がある。 また、途中で抜けた場合など、ケアが難しいケースがある。 boost::scope_exit boost::scope_exitを利用する。 #include <boost/scope_exit.hpp> #define FUNC_IN_OUT_LOG \ std:</boost/scope_exit.hpp>…

markdown記法

現在はemacsのoutline-modeを利用して plain textでメモをまとめているが、blogなどに上げるときに 体裁を整えるのが手間となっている。 markdown記法を使えば、plain textからhtmlなどのマークアップに 簡単に変換できる。 emacsにもmarkdown-mode.elが存在…