久しぶりのWindowsXPインストール2010年05月04日 13時26分34秒

最近の連休は日ごろできないで溜まっていることの後片付けに費やすことが多くなってきています。

今回は延長サポートがもうすぐ打ち切られるWindows2000稼動PCのアップグレードです。家族用です。 ハードウェアは私が使っているのと同じHP ML115 G1ですがほぼ標準状態でした。

アップグレードとは言っても、Windows7などではなく、WindowsXP Professionalです。 結構前に買い置きしてあったものを使います。 どのみち直接のアップグレードはできませんから、XPへのアップグレードは必要です。 ついでにメモリなどの増設もすることにします。

大まかな作業の流れ

  1. バックアップ用のHDDを用意(余っていた160GBのATA HDD)
  2. HDDのフルバックアップをTrueImage Home 10で実施
  3. IEのクッキーのデータとお気に入りのデータをエクスポート
  4. FireFoxはお気に入りだけとりあえずエクスポート
  5. SONY SonicStageのバックアップツールで音楽データをバックアップ
  6. HP ML115G1の80GB HDDを1個から2個に増設
  7. HP ML115G1にビデオカードを増設(余っていたPalit GF7200GS 256MB)
  8. HP ML115G1にメモリ増設(トータル2GB:ビデオカードの問題での上限)
  9. WindowsXPを新規インストール(ここで一度失敗)
  10. マイドキュメントのデータをバックアップデータから復元
  11. SonicStageのバックアップデータから復元
  12. IEのバックアップ済みのお気に入りとクッキーを復元
  13. FireFoxのバックアップデータの復元

SONYのSonicStageは最新バージョンはXアプリになっていますが、元のバージョンに合わせる形です。また、専用にバックカップしているのは著作権保護データなどの引継ぎのためです。

問題点と新しく気付いたこと

久しぶりにOSのインストールをしたための失敗ではなく、知らなかったのですが、WindowsXPの新規インストール時のドライブレターってC以外になる可能性があるってことです。 いや、忘れていたのかな。かすかな記憶がよみがえってきた気もします。

要はインストールしたいHDDのパーティションをインストール時に削除してしまって、他のHDDにパーティションが残っていたりするとそっちのドライブの方にCが割り当てられてしまうってことですね。 おかげで、ある程度インストールが済んで新しい環境でアプリケーションをインストールしてバックアップデータを復元している最中に気付いたものだから、結構な作業を繰り返すことになってしまいました。 ちなみにこの問題は修復セットアップでも解消はしませんでしたので、必ず新規のインストールをやり直す羽目になります。

それとFireFoxのお気に入りとかクッキーの引継ぎってちょっと勘違いしていたことがあったのでメモしておきます。 私は事前にお気に入りとかをエクスポートしてバックアップして新しい環境でインポートすることを行っていました。クッキーのデータはC:\Documents and Settings\USER\Application Data\Mozilla\Firefox\Profiles\xxxxxxxx.defaultのデータをバックアップしておいてFireFoxインストール後にコピーして使うようなことをしていたのですが、この手順は間違いだったようです。 以下でデータの引継ぎは出来ました。

  1. 古い環境のDocument and Settings以下をバックアップしておく。
  2. 新しい環境のDocumento and Settings以下のMozilla以下のデータをFireFoxインストール前にバックアップデータからコピーしておく
  3. 新しい環境でFireFoxを新規にインストールする

LCD表示器のデータシートと解説サイト2010年05月05日 08時59分35秒

PICマイコンなどと接続するLCD表示器が秋葉原などでは売られています。 データシートもあるのですが、どう考えてもデータシートだけではプログラミングするのに必要な情報が書かれているように見えません。

で、データシートよりも役に立つ解説サイトのリンクは以下です。

実行速度の遅いiwup_tskに関連して「割り込み保留可能時間」2010年05月12日 02時46分13秒

前回の記事コメントをいただきました。

関心を持ってコメントいただき、ありがとうございました。

さて、少し認識の違うところがあると思います。

一番大きな認識の違いは「割り込み禁止時間」と「割り込み保留可能時間」です。

私は元の記事で割り込み禁止時間という言葉を使っておらず、割り込み保留可能時間という言葉を使っています。にも関わらず、割り込み禁止時間を引き合いに出されたのは恐らく、視点の違いの問題で同じ命題だと思い込んでおられるのではないかと思われます。

先に結論を申し上げますと、両者は別の命題になります。

「割り込み禁止時間」は特定のコンテキストの実行中に割り込み禁止にされると「他の」割り込み処理が実行出来ないという問題を議論する時の命題です。

それに対して「割り込み保留可能時間」というのは現在処理中のコンテキスト、つまり「自分の」割り込み処理が次の同じ要因の割り込みが発生するまでに終了することが出来るかどうか、ということを議論する時の命題です。 したがって、割り込み禁止というよりもその割り込み処理が次の割込みまでに終われるかということが最大の関心事なわけです。

例えばUARTでFIFOを持たないようなコントローラを使うとしましょう。 115200bpsで1文字10bitとします。この時、1文字の受信割込みが発生する間隔は約86μ秒です。

つまり、その受信割り込みが発生した時の割り込み処理は86μ秒未満の時間で処理を終わらせないと次の受信割込み処理が実行できずに、1文字のデータを取りこぼすことになります。 この時、割り込み保留可能時間は86μ秒です。

そんな状況で5μ秒で終わったり80μ秒で終わったりするような時間見積りが出来ないようなサービスコールは使い物にならないわけです。

だから、i付サービスコールの処理時間は「割り込み保留可能時間」とセットで考えなければいけないわけです。

※説明を簡略化するために「自分の」という表現を使いましたが、厳密に言うと「自分の」と「他の」割り込み処理時間の最大時間と割り込みタイミングや割り込み禁止区間のトータルの話になります。

ウケなかった「余の顔見忘れたか」2010年05月15日 19時06分16秒

「劇場版TRICK超能力者バトルロイヤル」で仲間由紀恵が松平健に向かって言うセリフです。笑ったのは私一人だけ。気まずいじゃん。

水戸黄門の印籠と同じシチュエーションのセリフなのにね。 メジャーじゃなかったっていうか、TRICKの客層とあわなかったってことでしょうね。「暴れん坊将軍」は。 なので、白い馬の反応もいまいちということで。

ちなみに私はベタな時代劇は結構好きです。

でも同じテレ朝でネタやるんなら健(たける)に何気に電王ネタをやって欲しかったかも。

スタックも知らないのにそこそこの経験2010年05月18日 05時58分38秒

あるプログラミングを外部に頼みました。

組込みでμITRONのタスクから使用する汎用的な処理をするプログラムなので組込み経験を問わない条件でした。 ターゲット環境には依存しないのでgccなどでも構わない条件で開発を依頼しました。 要はLinuxでもCygwinでも何でもいいので関数が動作すれば良いという条件。

gccで動くような関数を作る場合でも組込み環境での利用を考えるためには以下の留意が必要です。

  • スタック領域は無尽蔵ではないので、関数スコープ内で大きな領域を確保するコードは書いてはいけない。なので、あらかじめどの程度のサイズが上限かを確認することが必要。
  • 大きめの領域はstatic領域を使うこと
  • static領域はスタートアップルーチンでの初期化ではなく、独自の初期化関数で初期化しなければならない場合があること。
  • static領域は特定のセクションに配置されることを前提にスタックと同様にサイズ制限を考慮する必要あり。
  • ヒープ領域が使えるとは限らない(今回の依頼では使用を禁止)

要は上記を伝えるために「スタック」という言葉を使って説明したわけですが、「スタックって何?」ってな感じの反応をするわけです。 関数スコープ内で定義する自動変数がスタック領域に確保されることくらい把握しておいて欲しい。その会話が出来ないのはプロのCプログラマのスキルに達していないということです。そんな知識じゃ「そこそこ」とは言わないです。

ということで残念な話ですが、プロのプログラマとして実力があるかどうかを確かめるキーワードを事前に確認する必要はあるでしょう。 知ってて当たり前だと思い込んだらいけないということです。

ヘタすると「処理系」という言葉やら「処理系の違いによるchar型の解釈の違い」なども知らないことが多いですからね。困ったものです。