March 03, 2007MMC/SDのSPIモードでのbusy信号以前『SDカードとの闘い』という記事でオシロでSDの様子を見てみたい、ということを書きましたが、実際に計測してみました。前の記事では、データ落ちが発生するのはSDの書込み性能の違いからくるものであり、公称性能が違うSDカードを、書込み時のビジー(busy)が出力される長さをオシロで計測することで評価してみようという趣旨だったと思います。ところが、ELMの『MMCカードの使い方』をよく読んでみると、このようなことが書いてありました。
今まで実はbusyの間はポーリング、つまりbusyの出力が停止するまでずっとCPUをSDの監視に割り当てていたのですが、ここに書いてあるようにbusyの評価を先送りにできるのなら、その開いた時間でデータを取りこぼしなく確実に取得できることになります。そこで、そのビジーの遅延評価をオシロを利用して詳しく分析してみることにしました。 長いので詳細は続きにてどうぞ。 続きを読む "MMC/SDのSPIモードでのbusy信号"March 04, 2007JX0122 @ OpenSky 2.0ポストペットで有名な八谷氏がやっている一人乗り飛行機の展覧会に先日行ってきました。いわゆるメーヴェです。ちゃんと型式取っているみたいですね。 行って見てびっくりしたのが、揚抗比(L/D)やらM.A.C.(平均空力翼弦)やら航空用語満載の設計資料が展示されていたこと。航空機に詳しい人はさらに盛り上がれると思います。勿論普通の方が行かれても、実機を見たりシミュレータを体験できて十分楽しめると思います。 初台で3月11日までやっています。詳しくはOpenSky 2.0の広告ページをどうぞ。 P.S. March 08, 2007Super Sylphide 進捗状況(2) -- sdcc ManiacsSuper Sylphideの全機能のうち、センサ、C8051F340、SDカードを利用して完璧にセンサのログをとれるようになりました。SDカードのハンドリングは、前の記事『MMC/SDのSPIモードでのbusy信号』にあるように色々と模索した結果解決しました。またログを記録したSDカードをPCでも読めるようにする為のFATですが、これはリファレンスとした純正のUSB-MSD-RDのFATが遅いため、ELMのFatFs-Tinyに置き換えることによって解決できました。 そのうちソースコードを今回しようと考えていますが、今回の記事ではその開発を行うのに利用したフリーのCコンパイラsdccの技をいくつか紹介しようと思います。 続きをどうぞ。 ※その後、サーボ用基板が完成しました。 続きを読む "Super Sylphide 進捗状況(2) -- sdcc Maniacs"March 15, 2007March 20, 2007Doxygenと戯れる日々
[Computer]
現在せっせと某プログラムのドキュメント作りに励んでいます。といっても僕は『ソースを読めば全て書いてあるでしょう、バグも含めて(by まつもとひろゆき氏)』で思考停止してしまっているので、ドキュメントといってもソースに埋め込むコメント程度しか書けません。で、あとはDoxygenで処理してHTMLなりPDFなりにしようという算段です。今回の記事はDoxygenをWindows(+Cygwin)で使うまでに設定したことを、メモ書きで自分用に残しておこうと思いました。 続きをどうぞ。 続きを読む "Doxygenと戯れる日々"March 24, 2007Spartan3の3種電源を1つのICでXilinxのFPGA、Spartan3を使用する予定があり、最近その電源を考えています。しかしながら3種類の電源を必要とするので、なかなか大変です。3種類というのはI/O電源の+3V3、アクセサリ電源の+2V5、そしてコア電源の+1V2。大元の電源が+3V3なら供給電源が2種類で済むのですが、残念ながら+5Vなので3種類が必要です。いちいちレギュレータを用意するにしてもその占有面積はかなりの物になります。そこで、この3種の電源が1つでまかなえるような素晴らしいICがないか調べてみました。 TIのXilinx FPGA/CPLD向け電源設計ページを見てみると、求めてみるものがありました。TPS75003という電源ICで1つで3種の電源が供給できるようです。 早速リファレンスデザインに倣って設計をしてみました。まだ作業中なので、スクリーンショットですが、こんな感じになりました。
電源は是非コンパクトにまとめたいです。 ※この電源ICを使ってFPGAボードを設計してみました。 March 27, 2007ApacheのMultiViewsで拡張子が有るリクエストでもgzが働くようにする
[Computer]
タイトルが呪文のようになっていますが、これ以上わかりやすいタイトルは思いつきませんでした。結局何の話かというと、Apacheのコンテントネゴシエーション(Content Negotiaion)機能、つまりHTTPサーバが持つコンテンツの中でクライアントに対して最適なコンテンツを自動的に選択して応答する機能についてです。 ことの発端は、prototype.jsでAjaxでも利用して少しサイトを華やかしようかと思った時でした。しかしこのprototyp.js、JavaScriptのくせに70KByteもサイズがあります(Ver.1.5.0)。これは少し嫌だなと思い調べてみたところ、gzip圧縮をかけてサイズを減らす方法があることを知りました。
この過程においてApacheのコンテントネゴシエーションの機能を知りました。つまり具体的にはMultiViewsというOptionを設定しておくことによって、prototype.jsを要求された際、クライアントがgzip圧縮をサポートしている場合はgzip圧縮されたprototype.js.gzを、そうでない場合は非圧縮のprototype.jsを返すということが可能なようです。しかしながらこれを実現するためには、デフォルトの設定では要求されるファイル、すなわちここではprototype.jsが存在しないことが必須条件(Apacheのマニュアルのコンテントネゴシエーション::MultiViews)であり、そのために多くの方は以下のどちらかの方法をとっていることがわかりました。
しかし残念ながらApacheのコンパイルでmod_rewriteを有効にしていなかったので、1番目の方法はできれば避けたいです。かといって、2番目の方法を採用しても、今までリンクは拡張子ありで記述していることがほとんどであったので、別のファイルにこの方法を適用する際に拡張子を削る作業に追われるのは目に見えています。そこで今回の本題である、なんとか拡張子が付いている状態であってもコンテンツネゴシエーションが働くようにしたい、という要望がでてきました。 解決策はとても単純でした。prototype.jsというファイル名をやめてprototype.js.jsにリネームします。こうすることで、prototype.jsに対する要求は、クライアントが圧縮に対応している場合はgzip圧縮のprototype.js.gzが、対応していない場合は非圧縮のprototype.js.jsが返るようになりました。 March 29, 2007Ajaxでdocument.writeするJavaScriptへの対策
[Computer]
最近サイトをAjax化、つまり非同期通信をすることによってアクセス時の体感速度を向上させようとしています。JavaScriptライブラリのサイズを小さくするという内容の記事にも書いたとおり、Ajaxの非同期通信は有名ライブラリであるprototype.jsを利用して実現しようと考えていましたが、ここでJavaScript、特にdocument.writeをしてくるJavaScriptを非同期で扱う際にサイトが壊れるという現象に遭遇しました。そこで今回はその対策についておこうと思います。 少し長くなりそうなので、サイトをご覧の方は『続き』からどうぞ。 |
かれんだ~
スポンサード リンク
|