December 13, 2013

Super Sylphide 進捗状況(71) -- もうちょっとすごいロガー完成

先日基板がきたもうちょっとすごいロガー(NinjaScanSlim)を組み立てて、動作確認をとってみました。

ninja-scan-slim_assembled.jpg
表と裏。

1円玉2つくらいのサイズで、とても小さいです。特にMicroSDのソケットがお気に入りです。挟み込むタイプで、間違って抜いてしまうこともなさそうです。

ninja-scan-slim_microsd.jpg
蓋で挟む。

最近あいかわらず進捗ダメですが、折をみてちょっとすごいロガー同様、設計データを公開したいと思います。なおファームウェアは、ちょっとすごいロガーと共通化してあるので、今回開発を大幅に短縮できました。

GPSアンテナ内蔵のRev.B基板を作ってみました。

22:26 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (0) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/898

December 26, 2013

生データをファイルとして読み込む

もうちょっとすごいロガーの亜種として、記録媒体をMicroSD以外の、例えばSPI Flashなどに換える計画があるのですが、その記録媒体をどのようにハンドリングすれば効果的に使えるか、ということを考えてみました。その一つのアイデアとして、記録媒体には生データしか保存せず、読みだすときにPC等からファイルシステム上のファイルとして見える方法を考えてみました。この方法なら、保存データの最大化、かつ、データの効率的な取得の両立が可能になると思われます。

そこで読みだす時にファイルとして見えるための情報を仮想的に生成するテストコードを書いてみました。FAT16ファイルシステムで、約128MBの保存領域が単一のファイルlog.datとして見えるようにしてあります。検証はimage_generator.cによって生成した128MBディスクイメージを仮想ディスク(vhd)としてWindowsでマウントできることで確認しました。

fat_file_system.png

図でいうとオレンジの部分にあたる、Master boot record (MBR)の1セクタ、および FAT16ファイルシステムに関わる BIOS parameter block (BPB)、File allocation table (FAT)、Directory Entriesの3種複数セクタを、diskio.cのdevice_read_special関数が自動生成しています。それ以外の部分はdevice_read()関数にオフセット部分を引いて問い合わせるようにしました。

本検討をするにあたり下記の情報が大変参考になりました。ありがとうございます。

また検証にあたっては、VirtualBoxのディスクツールをイメージからvhd形式に変換するのに使いました(VBoxManage.exe convertdd in.raw out.vhd --format VHD)。WindowsでのマウントはM$公式情報が参考になりました。

23:59 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (0) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/899