cpu_support.Sの移植作業、その途中経過。
念のため、一度全体的に確認しておく必要があるかも。あれこれいじってるから。
♪
28-Sep-2007: 朝昼:いつもの。夕:独楽寿司にて。
29-Sep-2007: 朝:即席麺。昼:おにぎり。夕:白飯、焼肉、豆腐。(23:05)
cpu_support.Sの移植作業、その途中経過。
念のため、一度全体的に確認しておく必要があるかも。あれこれいじってるから。
♪
28-Sep-2007: 朝昼:いつもの。夕:独楽寿司にて。
29-Sep-2007: 朝:即席麺。昼:おにぎり。夕:白飯、焼肉、豆腐。(23:05)
超漢字の上でdmidecode-2.9を動かす必要に迫られたので、簡単に移植した。パッチはこれ。Makefile.brvを見て、適当にガンバレ(無責任)。
開発用コンソールで実行した際のログも置いておこう。プロセッサID等の、ちょいと知られたら困るんだろーなーという雰囲気の物は、勝手に削除しているが。
♪
26-Sep-2007: 朝昼:いつもの。夕:白飯、酢豚(キット使用)。
27-Sep-2007: 朝昼:いつもの。夕:スーパーで買った弁当。(20:45)
むー、smartmontoolsを突っ込んでHDDの状態を見てみたら…かなりヤバいんだよねこれ?
という訳で、そろそろHDDの交換でもしようかと考えているところ。rougeがこんな状況なので、多分abricotも多分同様なんだろうな。
最近はどこの店でもSerialATAなHDDしか置いてないってことが多いので、rougeはこいつを使えば良いんだけど…実は、abricotがSerialATAに全然対応していなかったり、する。
こういうマシンでは、SUGOI ADAPTER SATA(SATA-TR150BMS)のような、PATA→SATA変換器に頼るしかないのかぬぅ。ていうか、古いマシンのためにいくつかまとめ買いが基本ですか?
♪
とりあえず、rougeに載ってるLinuxを2.4.35.2に上げて、sata_viaを有効にしてSATA Ready!な状態にしてみる。
Slackware-12.0のインストールはHDD交換後か、それとも別マシンを調達してからかなあ…って、マシンを買えるだけの金なんてものは無いヽ(`Д´)ノ
♪
24-Sep-2007: 朝:マクドナルドにて。昼:パンと即席麺。夕:白飯、ジャガイモとベーコンの炒め物。
25-Sep-2007: 朝昼:いつもの。夕:白飯、鮭と野菜の汁物。(21:20)
cpu_support.Sの攻略を開始。まずは、タスクディスパッチャとかその辺。他、細かいところを色々と。
とりあえず、前回(02-Sep-2007)からの差分と、オリジナルからの差分を置く。02-Sep-2007で疑義照会した例の件に関する返事も得られているので、一応その情報に従っていじってるつもり。
なお、移植の都合上、USE_TRAPの指定は必須。H8/3664に内蔵されたROM容量の関係で、デバッガサポート(USE_DBGSPTおよびUSE_HOOK_TRACE)には対応していないし、今後も対応しない。
デバッガサポートを切っちゃうってことは、td_xxx_yyy()関連のAPIが使えなくなるという問題を抱えるんだけど…基本的な部分すら載るかどうかが怪しいからね。
♪
cpu_support.S内で残っている項目は、以下の通り。
作業する前に、実装仕様書を書くべきなんだけどね…ノリと勢いでやってるから全然後回しになってる。
一旦ドキュメントをまとめてから作業しないと、混乱するもしれないな。
♪
21-Sep-2007: 朝昼:いつもの。夕:白飯、アラ汁。
22-Sep-2007: 朝:適当に。昼:即席麺。夕:某所で飲み。
23-Sep-2007: 朝:寝てた。昼:即席麺と妻が作ったチヂミ。夕:スーパーで買った弁当。(23:35)
さらに、こんなコードを無理矢理ねじ込んで、逆アセンブルして調べるんだけど…
offset.hに定義されている値で、cpu_support.Sが実際に使用している値は、実はTCB_tskid, TCB_state, CTXB_ssp(+TCB_tskctxb)の三つだけ。
この程度なら、こんなことやって計算した値をROM上に置いて、こいつらをcpu_support.Sから参照した方が良いんじゃないかなあ。計算用のコードは、task.c辺りにでも放り込んでおくとかで。
速度面とかで若干不利な部分も出てくると思うんだけど、オフセット値を手計算でごにょごにょやる手間やらバグった時の心理的なダメージやらを考えれば、十分にペイすると思う。そうであって欲しい(弱気)。
♪
19-Sep-2007: 朝昼:いつもの。夕:白飯、豆腐と野菜の炒め物、納豆。
20-Sep-2007: 朝昼:いつもの。夕:白飯、焼いた鰺、スーパーで買った惣菜。(21:40)
不調だと思っていたDeskjet 5850、実はカラーインクが切れていたというオチでした、と書くと至極当然な結論に見えちゃうんですが…
インク詰め替えキット使って、補充しているんです、そのカートリッジ。んーでもって、詰め替え後もちゃんと印刷できることを確認してるんです。
印刷カウンタの制限に引っかかってたんでしょうかねえ。単にインクを詰めただけで、カウンタリセットの類は一切やってなかったし。
…まずは空になったカラーカートリッジを集めるところから始めますか。古いのは捨ててしまっているので、最初からやり直しです。orz
♪
もう少し原因をちゃんと調べないとダメですね…>俺
♪
13-Sep-2007: 朝昼:いつもの。夕:ここまで前になると、もう思い出せない…
14-Sep-2007: 朝昼:いつもの。夕:白飯、スーパーで買った惣菜、サンマの刺身(あげいん)。
15-Sep-2007: 朝:妻が以前作っていたチヂミ。昼:実家にて。夕:冷食ピラフを適当に。
16-Sep-2007: 朝:冷食ピラフの残りとか。昼:何故か義妹の夫の実家にて。夕:COSTCOで買ったものをあれこれ。
17-Sep-2007: 朝:パン等。昼:長浜ラーメンにて。夕:焼いた肉、白飯、ポテトサラダ。(20:45)
電車の中で見た、某銀行のATMに関する広告なんですが…
どうも、「キャッシュカード」の辺りが見ていて落ち着かないんですよ。拡大するとこんな感じで。
なんとなく、「ャ」「ッ」「ュ」の文字が、他の文字に比べて若干細めになっているからか…と思ったものの、MS Pゴシックでも細いんですよね。こんな感じに。
でもまだMS Pゴシックの方が安心して見ていられるような。
♪
他の部分も、結構見ていて引っかかるんですよね。引っかけて印象に残すという、広告の戦略としては成功しているんでしょうけど…
あと、ATM機種によって画面内容が異なる場合がございますと書かれているけども、このATMのメッセージって、人の神経逆撫でしてるよね。
いちいち揚げ足取るのもアレなんけど、「お○○してください」なんて書かなくて良いから、もっとあっさりすっきりしたメッセージを希望。
「お引き出し」はまだ許せる。でも、「お押しください」は見ていてとっても気持ち悪い。銀行だから、という事情があるとしても…はっきり言ってこれは厭味にしか見えない。
ユーザインタフェース(UI)に下手な丁寧語使うくらいなら、即刻止めて欲しい。壊したくなるくらいムカつくから。
♪
なんでこんなに下品なものが世の中に蔓延してるんだろうな、ってdisれる程俺も偉くないが…でも正直「もう少し平易な文章をUIに記述したらどうよ?」くらいのことは書きたい。
別にマイクロソフトを攻撃する意図はないのだが、例として使いやすいのでちょいと使わせてもらう。
日本人の喋る英語がJapanese Englishだと言うなら、マイクロソフトのOSに書かれている日本語はマイクロソフト日本語(Microsoft Japanese)だろというくらい、意味不明な日本語が使われているUIが多すぎだ。
そもそも舶来の品である以上、若干日本語として不明瞭な部分があることは分かる。翻訳にも限界があるし。それは仕方の無いことで、少しずつ良くなるよう頑張ってもらうしかないのだが…
だからといって、その悪い部分を真似たUIをアプリケーションに採用するのはただのバカ。人間がジカに触れる物を作る以上は、それくらいの意識は持って臨んで欲しい。
…これは贅沢な望みではない、と俺は思うのだが。
♪
最近、「アキバのみなさーん」とか「オタクのみなさーん」とか言ってる政治屋が居るようだが、この科白って蔑視込もってるよね。それも、かなりの量の。
おまけに、この科白にゃ随分と尻尾振って喜んでる連中が居るようだが…いい加減、目を覚ましたら?(13:15)
五十音配列ってのは↑こうだろう、とツッコミを入れているような気がする。
ていうか、このキーボードのスキャンコードって、どうなってるんだろ。
♪
そういう自分は今も昔もローマ字かな変換なんですけどね。[Shift]+[かな]には相当お世話になりました。
♪
朝昼:いつもの。夕:パン、野菜スープ。(21:50)
04-Mar-2005に導入したDeskjet 5850、不調です。web consoleでは、こんな画面が出てます。
ステータスの欄に「サービスを受けてください」って書いてあるんだけど…サービスってなんだよヽ(`Д´)ノ意味わかんねーよ!
とりあえず、e-mailでの問い合わせとかいうのを済ませて、返事を待つ状態。
♪
しっかし、2年半か。妻が前に使っていたキヤノンのBJ F210はもっとしぶとかったんだが…イマドキのプリンタは壊れやすいのかのう。
万一買い替えるにしても、HP-PCLを受け付けて、LANで繋がる物が…って、選択肢狭いなー。
♪
10-Sep-2007: 朝昼:いつもの。夕:白飯、納豆、サンマのホイル焼き。サンマを切ってホイルにくるんで焼くなら、普通に焼く方が美味しいねー。
11-Sep-2007: 朝昼:いつもの。夕:妻にお任せ(白飯、ナスの炒め物、果物)。(21:20)
H8S/2212向けのμT-KernelをH8/3664へ移植できるかどうかを試してみる…というのは一旦脇に置いといて。
とりあえず、gdbでも入れてみよう。tar zxpf gdb-6.6.tar.gz; cd gdb-6.6; mkdir h8300-elf; cd h8300-elf; ../configure --target=h8300-elf; gmake; gmake installでおしまい。
あと、/usr/local/lib/gcc/h8300-elf/3.4.6/specsを晒しておこう。
♪
07-Sep-2007: 朝昼:いつもの。夕:白飯、サンマの刺身らしきもの、スーパーで買った惣菜、妻が作ったひじきの煮物。 魚をきれいに捌くには、まだまだ修練が必要だ。
08-Sep-2007: 朝:妻にお任せ(魚の丼物)。昼:冷凍庫にあったパスタ。夕:妻にお任せ(チヂミ)。
09-Sep-2007: 朝:寝てた。昼:妻にお任せ(トースト類)。夕:近所の某ファミレスにて。
♪
自分で捌いた(下手っぴだけどさ)サンマを肴に、調子こいて酒飲んでいたら…見事に悪酔いして調子崩しました。歳かなあ…(21:05)
電車の中で、W-ZERO3[es]に放り込んだcpu_support.Sを読んでいるところ。でも、他にも色々見ておく必要のあるコードがありそうだ。
というのも、cpu_support.SからTCB構造体の中にアクセスしている部分があって、ここは注意しておかないとマズい。構造体を示すポインタから、目的の要素へのオフセットがズレてたら困るでしょ?
という訳で、こいつらを追いかけるんだけど…TCBというキーワードでは全然正体が掴めない。
$(BD)/kernel/tkernel/src/task.hで定義しているstruct task_control_blockを、$(BD)/kernel/tkernel/src/task.hと$(BD)/kernel/tkernel/src/kernel.hの二箇所で、typedef struct task_control_block TCB;なんてことをしているので、task_control_blockを追いかける必要がある。
…で。
struct task_control_blockの状態に合わせて、$(BD)kernel/sysdepend/cpu/h8s2212/offset.hを書き換えないといけない訳だ。面倒臭い…
♪
もう一つ、H8/300Hノーマルモードではjsr/bsr/rts命令で保存されるPCが16bit、という問題がある。
アドバンスドモードだと、32bitの領域に24bitのPCを放り込むので、空いてる8bitの領域にCCRレジスタを保存という芸当ができるんだけど…ノーマルモードで
mov.w @er7, r0 stc ccr, r0h and.b #CCR_EI_MASK, r0h mov.w r0, @er7 |
なんてコード書いたら、間違いなくPCの上位8bitが壊れるので。
これは…mov.w @er7,r0の前に、dec.l #2,er7を、処理が終了する際のrtsの前にinc.l #2,er7を入れるか、T-Kernel API呼出をtrapa命令経由にするかのどっちかだな。
前者だと、必要とする全ての箇所に漏れなくその処理を追加すれば…というのはかなり面倒だし、バグの温床になるから、後者にしよう。
♪
05-Sep-2007: 朝昼:いつもの。夕:白飯、焼魚、納豆。
06-Sep-2007: 朝昼:いつもの。夕:妻にお任せ(カレーライス、通販で買ったレトルト物)。(20:10)
H8/3664のSCIは、H8S/2212のレジスタとほとんど一緒で、スマートカード云々とかのレジスタが無いだけだから…ボーレート生成用のクロックの設定だけ見直せば、他はそのままのコードで多分イケそうな予感。
タイマAは、すぐにでも動きそうだなこれは。
…cpu_support.Sかあ(溜息)。
♪
03-Sep-2007: 朝昼;いつもの。夕:妻にお任せ(フォー)。
04-Sep-2007: 朝昼:いつもの。夕:焼きそば。
…明日も麺類?
♪
本屋の文庫コーナーで、アド・バード(椎名誠)を探していたら…[図解]さかな料理指南(本山 賢司)を発見。
文庫サイズのレシピ本なんて、そんなんアリですか?ということで購入したんだけど、これが面白い。
味のあるイラスト、手軽に作れる肴料理…飲みたくなるんですよ、酒を。←あれ?(21:55)
こちらが把握している範囲では、cpu_support.Sにある、knl_dispatch_disabled, knl_int_nest, knl_lowpow_discntの操作は、C言語側の宣言とビット数が合ってない気がする。
んでもって、$(BD)/include/sys/sysdepend/app_h8s2212/machine_depend.hにあるINT_BITWIDTHの宣言は、16ときたもんだ。
…どうすりゃいいんだようヽ(`Д´)ノ
♪
とりあえず、疑義照会してみるかねえ…cpu_support.Sの作業は、一時凍結で。
一応、ここまでの作業結果は記しておく。前回(29-Aug-2007)からの差分と、オリジナルのμT-Kernel/H8S2212ソースコードからの差分。どのファイルをどういじったかなんて、もう覚えちゃいない。
…タイマとシリアルのハードウェアに関して、説明書を読んでおくとしますかね。
♪
01-Sep-2008: 朝:寝てた。昼:マクドナルドにて。夕:妻にお任せ(白飯、煮物、果物)。
02-Sep-2007: 朝:寝てた。昼:パン、昨日の煮物の残り物。夕:白飯、八宝菜(キット使用)。(21:25)