2013年8月31日土曜日

__attribute__((OS_main))

AVRマイコンのmain()で16本のレジスタpushが無駄だなぁと思い検索。GCCのバージョンにもよるようだが、avr-gcc-4.3.4では void __attribute__((OS_main)) main() {} とすることで、前記pushを省ける。

2013年8月29日木曜日

Google keepいまいち

Catchがサービス終了してしまうのでGoogle keepを試していたのだが、ちょっとダメなところがあってCatchは良かったなぁと思わされた。
AndroidでバージョンアップされたGoogle keep appを起動したら、なぜだかメモの一つがアーカイブに移動しており、そのまま書き換えたら指示した覚えもないのに削除しましたとの表示が。。どこを探しても見つからず、あきらめきれずにうろうろしていたのだが、Catchは削除後30日以内なら復活できるのを発見。半月ほど戻ったけど失ったメモを取り戻すことができた。
さらにfirefoxのabout:cacheから最近のメモを拾い上げて、うまく補完できたのでほぼ問題ないが、時間はだいぶ取られてしまった。
Google keepに関してはいろいろ不満が出ているのも発見して、さて今後はどうしたものかと悩み中。削除したら戻せないのはもちろん、Google driveと統合されるはずが一向に進んでいない(統合されればGoogle driveのゴミ箱が機能するはず)とか、Windowsクライアントなら削除を取り消せるけどAndroid appだとダメとか、いろいろあるようで。

2013年8月25日日曜日

デフォルトだとATTiny2313のEEPROMはプログラミング時に消える

High fuseにEESAVEというビットがあって、出荷時は1になっていて、ライターからプログラムを書き込んだりの消去時にEEPROMも消えるのであった。
メッセージを切り替えられるようにしようと思い、設定したメッセージはEEPROMに保管しておくのだが、なぜだか一度書き込んだメッセージが読めないので悩んだ次第。まぁ開発中は、プログラムの初期化時にデフォルトのメッセージをEEPROMへ書き込んで動き出せば良いかということで納得したが、数十分は悩んだ。。。

AVRマイコンでデータをFlashROMへ置くには

AVRマイコンのTiny2313やTiny13は安価で楽しいのだがメモリーが限られる。しかもすっかり忘れていたことにハーバードアーキテクチャーなので、プログラム領域とデータ領域が分離されている。
ちょっとしたデータをプログラム側へ置きたかったのだが、少し事情が変わっているようでてこずった。
以前は
const char prog_char data[10] = { 初期値 };
みたいな感じだったようだが、prog_charはdeprecatedだそうで、avr-gcc-4.3.4だと以下のようにするらしい。
const char data[10] PROGMEM = { 初期値 };
アクセスは以前と同じで
char res = pgm_read_byte(&date[5]);
とかするようだ。
しかしすっかり忘れていたよ。ハーバードアーキテクチャー。。

2013年8月24日土曜日

赤外線リモコンの送信データのデータベース

リモコンの送信データのデータベースがあった。
http://www.256byte.com/remocon/iremo_db.php
AVRマイコンで受信プログラムを作っていて、手元のSHARPのAQUOSのリモコンで試しているのだが、取得できたコードとこのデータベースが合ったので、ちょっと自信がもてた。
LSBファーストで送出されるという情報も見かけるので、前記データベースの表記はビット順が逆のような気もするけど、さまざまなリモコンを相手にするのにあんまり細かいことは気にしてられないのかもしれない。

2013年8月20日火曜日

Windos7のNFSクライアント

ながらくWinXP+SFUでNFSを使ってきていて、Windows7に移るにあたって調べてみたら、Enterpriseの場合は機能を有効にするだけで使えるとわかりひと安心。ところがGID/UIDのマッピング機能がSFUと少し違っていて困った。SFUだとローカルに対応ファイルを用意してマッピングできたのだが、Win7の場合はサーバーが必要になるらしい。
幸い、検索したらレジストリを変更してデフォルトのUID/GIDを変えてしまう手順が見つかったので、大袈裟にせず以前と変わらず使えるようになった。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS \CurrentVersion\Default
にDWORDでAnonymousUidとAnonymousGidを追加すればよい。

2013年8月7日水曜日

QMAIL3からメールをエキスポート

Hybrid W-Zero3でQMAIL3の世話になっている。
内蔵フラッシュメモリーの残量が減ってきたので、たまったメールをどうやって吸い上げようかと悩んでいた。
なんのことはなく、メニュー→ファイル→書き出し、でMH風形式にエキスポートできたので、パソコンへ引き上げてW-Zero3から削除した。
パソコンでIMAPサーバーを動かしてそっちのフォルダーへ移動とか、手間のかかる手段を妄想していたのだが、意外と簡単に吸い出せてラッキーだった。