September 12, 2011

mbed tips in time and interrupts

mbed で HTTP Clock [twitter.com] を作ったときの時間管理や割り込み関係の tips をメモ。
  • Timer [mbed.org]
    Timer クラスのインスタンスは複数作れるが、ハードウェアタイマとしては同じタイマを参照しているようで、違うインスタンスでもタイマ値が同じになっている。reset() とかも隣のインスタンスに影響してしまうかも。コンパイル時に何か警告してほしいなぁ。LPC1768 だとタイマは4つあるっぽいが、mbed コンパイラではどういう振り分けになっているのだろう。
  • wait [mbed.org]
    wait() は float 受けられるし、wait_ms() や wait_us() もある。
  • Ticker [mbed.org]
    タイマー割り込みは多重割り込みしようと思っても、何も言われずに回避されるっぽい。割り込みハンドラに割り込み間隔より長い wait() を入れてみたら、単に多重割り込み側は呼ばれなかった。違う IRQ# なら多重割り込みできてしまったりするのだろうか。
  • time [mbed.org] set_time() で RTC に値を入力できるので大変便利。だが、精度が1秒しかでない。

May 17, 2011

mbed NXP LPC1768

昨夜に LED と USB Serial UART での Hello World! は出来たので、今日は StarBoard Orange に載せて LCD, httpd, USB host (USB mass storage read/write) とサンプルをコンパイル、実行してみた。
無線 LAN ルータに Ethernet ケーブルで接続すると DHCP で IP を取得できたが、MacBook Pro の AirMac をインターネット共有の上流に設定し Ethernet Port に繋げると、DHCP で IP を取得できない。Linux PC など繋げたときは IP が取得できてるので、なぜだろう。一応クロスケーブル使ってみたがだめ。tcpdump でみると、一応リクエストは来ているようだが。
$ sudo tcpdump -i en0
00:19:51.055271 IP 0.0.0.0.bootpc > broadcasthost.bootps: BOOTP/DHCP, Request from 00:02:f7:f0:76:4c (oui Unknown), length 308
$ uname -a
Darwin ryo4218.local 10.7.4 Darwin Kernel Version 10.7.4: Mon Apr 18 21:24:17 PDT 2011; root:xnu-1504.14.12~3/RELEASE_X86_64 x86_64

March 17, 2011

Mew 6.3 in Carbon Emacs (MacOS X 10.6.6)

Carbon Emacs Package 2010 Edition についてきた Mew-6.3 (Stable) に stunnel 最新版 (4.35) を make したがうまく繋がらなかった。stunnel3 というラッパもビルドされるけど、そちらを使ってもだめ。stunnel-3 の最終版 (3.22) だとうまくいった。