31-Mar-2009
[【注意喚起】nisiq.netのトラブル]

nisiq.net使いに、一応注意喚起しときます。

昨日〜今日にかけて、nisiq.netが使えないトラブルが発生し、これに対してfamille.ne.jpの障害情報には以下のように書かれています。

20090331a.png

しかし、サーバのトラブルというよりもDNS cache poisoningとかその辺の類の攻撃を食らっているような感じです。

これがトラブル発生前(もしくは解決後)。

20090331b.png

こっちがトラブル発生中。

20090331c.png

(諸事情により、一部の文字は潰しています)

しばらくの間は偽サーバに繋がる可能性があるので、念のため警戒は怠らないでください。また、メールボックスのパスワードは変えておくことをお勧めします。(19:00)

31-Mar-2009
[検討の結果]

日記が時系列になっていませんが、特殊な事情ということで。

.motから.hexへ手作業で変換するのも面倒なので、Makefileか何かにその辺を仕込んでおく
Makefileの記述は苦手科目ってことでパス。gmake; srec_catなんたらかんたら、を記述したシェルスクリプトか何かでも用意すれば済む話でもあるし。
knl_get_hw_timer_nsec()を真面目に実装する(現時点では非実装…デバッガサポート機能の実装は必須では無いので、別にこのままでもいいんだけどさ)
CPUクロックが72MHz(12MHz×6)のような値なら良いんだけど、58.9824MHz(14.7456MHz×4)のような値への対応を考えると…ごめん、これもパス。下手なコード書くくらいなら、自分の目的に合わせて埋めてもらう方が良いってケースだと思うし。
PL190対策のアレを試してみる
ごめん、こーれーもー。PL190を載せた石を入手してからでも良いよね?

…という訳で、時間は残った作業に割り当てることにします。

どーでもいーんですが、T-Engine Forum英語版ページからダウンロード申請しないと英語版のドキュメントが手に入らない、っていうのはいい加減に勘弁してもらえないでしょうか。

あと、Logitech(Logicool)のマウスドライバもどうにかしてください。日本語版Windows XPを使っていると、何故かキーボードドライバを106/109日本語キーボードに設定してくれるんですが…俺が使ってるのは101/104英語キーボードなので。

30-Mar-2009: 朝昼:いつもの。夕:白飯、肉と野菜のスープ。

31-Mar-2009: 朝昼:いつもの。夕:妻にお任せ…マクドナルドお持ち帰り(優待券が余ってたので消化)、スーパーで買った惣菜類。(21:50)

29-Mar-2009
[ToDo]

28-Mar-2009: 朝:寝てた。昼:マクドナルドにて。夕:白飯、スーパーで買った惣菜。

29-Mar-2009: 朝:パン。昼:カレーライス(レトルト物)。夕:白飯、納豆、豚キムチ、炒めたモヤシ。

そろそろ炒め物でどうにかする、というのは改善しないといけないな…

…他、何かあったっけ?

新しい得物、以前検討していたSH-88TRにしました。もっとも、普段使いは福生で暮らしていた頃に買ったSK-300になると思います。現行製品じゃないのでリンク張りませんけど。(23:30)

27-Mar-2009
[…]

パトラッシュ、僕はもう疲れたから。

※僕はもう疲れたよ、ではない点に注意(24:25)

27-Mar-2009
[出遅れましたね]

ぃゃー、もうね。モノ入手して動かしてアレ作ったコレ作ったって話見てるとなんか悔しくてね。取り残された気分?

とりあえず機嫌直して、USB-Bコネクタ(通販にした)とピンヘッダ二箇所を装備して、こんな感じ。

20090327a.png

lpc21ispに入っている通信ソフトを使って、LPC2388を直接ぺしぺし叩いています。

通信速度を同期させた後にLPC2388に動作クロックを通知し、部品番号/Boot codeのバージョンの取得等を行っています。

ベクタ領域(0x00000000〜0x0000003f)のダンプを試みてみたはよいのですが、uuencode形式で返してくれるのでデコードしないといけません…ぁうっ。

OpenBSD向けに手を入れた、lpc21ispによる書き込みは大丈夫そうです。

20090327b.png

折角なので、例の移植していたアレがどこまで動くか試してみましょう…動かなくても泣きませんよ?

20090327c.png

リセットスイッチはちゃんとした物が欲しいですねえ…

修正差分は、22-Mar-2009の物を使っています。証拠品として、kernel-rom.rom, kernel-rom.hex, kernel-rom.mapを置いておきます(でも単に起動して、キー入力で動作が止まるだけなので…全く面白くありません)。

朝昼:いつもの。夕:白飯、納豆、青椒肉糸(キット使用)。(21:30)

LPC2388基板のP1[18]にLEDが繋がっているようですので、これを光らせてみましょうか…

【テスト1】単純にμT-Kernelを起動させてみる

【テスト2】システムタイマ(tk_dly_tsk()によるウェイト)の動作を見てみる

H8版の場合、cpu_support.Sにknl_inthdr_startupとknl_timer_handler_startupの二種類の割り込みハンドラが記述されているため、適当な割り込み源(システムタイマと異なるタイマの割り込み)を使用したテストも行いました。

しかしARM版では、icrt0.Sに記されているknl_irq_handlerの先でシステムタイマ/それ以外に分岐するため、システムタイマを利用した処理を確認するだけに留めています。(23:50)

26-Mar-2009
[まさか…]

SOLVALOUを家で遊べる日が来るなんて…。

マトモなSTARBLADEを家で遊べる日が来(ry ※鉄拳5のオマケは認めていない…オマケ扱いだから

ありがとうNBGIのVirtual Console Arcade

…あとはF/AとRave RacerとNebulas Rayがあれば完璧だな。

ナムコ以外だと、バトルガレッガと魔法大作戦とRAYSTORMは最低でも欲しい…

ちなみに、シューティングばかりですが…遊る(やる)より観る派なので、はっきり言って下手です。ヘタクソです。稼ぐ以前に生き残りましょうってレベルです♪

朝昼:いつもの。夕:煮物、白飯、その他(真面目にメモするのが面倒らしい)。(22:15)

25-Mar-2009
[準備中]

lpc21isp-1.64をOpenBSDで動かしてみるテスト。適当な機材を繋いで、./lpc21isp -debug -termonly /dev/null /dev/ttyU1 38400 4000とかやると決して幸せにはなれないけど動作の確認はできる。

なんとなく、0x0dが0x0aに変換されて送信しているように見えるんだけど…?

lpc21ispはIntel HEXフォーマットを使うので、SRecordのコンパイル。

Boostは/usr/ports/devel/boostにあるものを使えばok。あとは、export CXX="g++ -I/usr/local/include"; ./configure --mandir=/usr/local/man; gmake; gmake install。

基板を動かすためにはUSB-Bコネクタが必要なんですが…「あらこんな所に牛肉が♪」という訳にはいかず。←歳がバレる

でも今日は雨降ってるし、寒いし、人が多い時期なので嫌(おまけに25日…給料日狙いのリーマン狩りとか普通に居そうだな)という理由により秋葉原行きは中止。ていうか今週は行きたくないなあ。

となると、町田か通販か…そういやこの前久し振りに町田を回ったら、東急ハンズが移動していた(おまけに縮んでる)のでびっくりですよ。

朝昼:いつもの。夕:白飯、肉と野菜を炒めた物、妻が買ってきた惣菜。(21:10)

24-Mar-2009
[コードを色々いじっています]

PL190対策ってことで、VICIRQSTATUSレジスタを参照する(割り込みの優先順位はbit0が常に上位となる)場合を考えてみました。個人的には、PL192使う場合でもこれでいーぢゃんとか思っているんですが、ああ書いてしまった以上それで通すしかないのかな…とも思っています。ていうかその辺りの愚痴は動くようにしてからでも遅くはありませんね、はい。

utk_config_depend.hに手を入れて、H8/3664で試した時と同じ条件(タスク2つ、セマフォとイベントフラグとメイルボックスを各1つ、他は全てdisable)でコンパイルしてみたんですが…kernel-rom.mapを見ると随分コードサイズがちっこいんですよね。先頭から__data_orgまでが、0x18b0だから…6kBちょい?

H8/3664の時のkernel-rom.mapは__data_orgが0x3a00なので(テスト用のコードが入っているので実際はもう少し小さくなります)、乱暴に数えても半分。

…本当だったらかなりすごいとか驚けるんだけど、数え方間違えてるんじゃないかなーという疑いの方が先に来ていたりして。

朝昼:いつもの。夕:白飯、納豆、肉野菜炒め。(22:35)

23-Mar-2009
[ぁうっ]

腹具合が…

sio.cとicrt0.Sに手を入れて、gmake mode=debugで得られたkernel-rom.romをarm-elf-gdbのシミュレータに食わせてみた時のログ

kernel_start()からいきなりtm_exit()まで吹っ飛んでいるけど、これは正しく動いているんだろうか…基本的な部分(タスクディスパッチャとか)には手を入れていないから、確かにこの通りでなければ困るのだけども。

何にせよ、引っかかりそうな部分はだいたいこの辺かなーという感覚は掴めた気がするから、後は実機に書き込んで…って、lpc21ispをOpenBSD上で動かせるかどうか確認してないや…

PL192じゃなく、PL190の方のVICを使う場合はどうすりゃ良いんですかね。割り込み要因が32個あって、特に優先すべき物16個(VICVECTADDR0〜15)+それ以外全部(VICDEFVECTADDR)に分けろとか言われても困るし。

とりあえず、VICIRQSTATUSレジスタのbit31(優先度低)〜bit0(優先度高)で振り分けなきゃいけないのは分かってるんだよう…

朝昼:いつもの。夕:うどん。(21:45)

22-Mar-2009
[…]

20-Mar-2009: 朝:即席ラーメン。昼:冷凍庫の中をごそごそと。夕:白飯、納豆、刺身。

21-Mar-2009: 朝:寝てた。昼:冷凍庫の中をごそごそと。夕:妻が買ってきた弁当。

22-Mar-2009: 朝:トーストとソーセージ。昼:即席ラーメンとか。夕:白飯、炒り豆腐。

とりあえず埋めるだけ埋めてみた、って状況。

デバッグモードでコンパイルしてgdbのシミュレータに食わせてみるには、少なくともsio.cとicrt0.Sに手を入れないとダメなんだけど、面倒なのでそれ以上は試していない。

AT91M55800AのAICと違い、ARM PrimeCellのVIC(おそらくPL192)は各割り込み要因に対して優先度を指定できるので…タイマ割り込みの扱いはどうなるんでしょうかね。

VICを操作してタイマ割り込みを禁止→CPSRを操作してIRQ許可→うにゃうにゃ→CPSRを操作してIRQ禁止→VICを操作してタイマ割り込みを許可、というタイマ割り込みハンドラの処理で良いのか、気になっています。

うにゃうにゃしている間は、割り込み優先度マスクレジスタを使ってタイマ割り込みの優先度以下の優先度を持つ割り込みは全て禁止しておく、という実装も考えられなくはないのですよー

まあ細かいことは偉い人に任せて、シロートな俺はとりあえず動かしてみることに専念してみるぜ。(23:35)

19-Mar-2009
[たまには写真ネタを。]

いつでもちょっと小休止。

timg644.jpg

「初午とは2月最初の午の日です。その昔、京都の伏見稲荷に神様が降りたった日といわれています。言わば、お稲荷さんの誕生日です。稲荷神は五穀豊穣や福運として信仰されており、初午の日にお稲荷さんの使いであるキツネの好物、油揚げを供える風習があります。」

風習自体は否定しませんが…風習商法はそろそろ止めてほしいんですよねえ。なんでもかんでも商売に結びつける根性は見習うべきものがありますが、風習に対する冒涜までは真似したくありませんねえ。

timg668.jpg

「商品管理タグを取り付けることで、商品の品切れ防止に努めています。」

えっと…これは新手の冗談か厭味の類?素直に万引き防止って書けばいいのに。

timg676.jpg

「このパンには品質改善と風味の向上のために臭素酸カリウムを使用しております。残存に関しては厚生労働省の定める基準に合致しております。」

昔はこんな表示無かったはずなんだけど…こういう化合物を突っ込まないとパンが作れないくらい、パンを作るのは難しい時代になったってことなんだろうな。

朝:いつもの。昼:神奈川某所にて。夕:白飯、焼いた鶏肉、炒めた野菜。(23:10)

18-Mar-2009
[確認中。]

ベクタ領域(0x00000000〜0x0000003f)はきちんと分離して、remapの処理もきちんと記述して、MAM(Memory Acceleration Module)は使わないから殺して、PLLは設定しないとマズいかもしれん…流石に内蔵RCオシレータ4MHzってのはごくごく一部の人しか萌えないだろうし。

LPC21xx/22xx辺りのマニュアルも併せて見てみたんだけど、PLL周辺はともかく…割り込みコントローラが似て非なる物ってのが痛い。ていうか、OLIMEXのLPC-P2103辺りで動く方がネタとして面白いのではなかろうかと思ってしまうのだが…

既に基板を入手して動かしている話もあるみたいなので、これはじっくり読んでおこう。

それにしても、PLL設定コードをアセンブラで書く気にはちょっとなれないんだけど…どうしよう…ARM ARMは仕事場に置いたままだし(PDF版でも読むか)。

17-Mar-2009: 朝昼:いつもの。夕:白飯と焼肉と野菜の炒め物。

18-Mar-2009: 朝昼:いつもの。夕:白飯とスーパーで買った惣菜と焼鮭。(20:40)

16-Mar-2009
[とりあえず]

残るはタイマだけだと思う多分、というところまで。

正直言って、手は抜いてます。動けば上等くらいのレベルしか狙っていません。

というか動くんでしょうかコレ。多分動きませんし、現時点では動いたら困るって状況だと思います。

朝昼:いつもの。夕:白飯、スーパーで買った惣菜を適当に加工。(22:30)

13-Mar-2009
[なかなか攻略が進みません]

AICとVIC、名前似てますよね。割り込み優先度が設定できるとか、GPIOはGPIOモジュール側に丸投げ(なのでエッジ/レベル設定はさっくりスルー)とか、その辺を除けば構造が似てるような気がしてきました…

食事メモ、取ってる余裕無かったので省略です…

ていうか何故俺を表に引っ張り出すかなー…(23:35)

08-Mar-2009
[攻略対象を調査中です]

…ってことをやっている間に、先を越されそうですが(笑)。

06-Mar-2009: 朝昼:いつもの。夕:ホカ弁。

07-Mar-2009: 朝:寝てた。昼:適当に。夕:七輪やにて。

08-Mar-2009: 朝:寝てた。昼:妻にお任せ(パスタ)。夕:肉野菜うどん。(22:10)

05-Mar-2009
[とりあえず]

UARTが16550互換ってことなので、PC/AT機相手にコード書いてみたり、とか。

16550互換ったって、実物は32bit単位でレジスタをアクセスしなきゃならないみたいだし、pin multiplexerやら消費電力低減のためのクロック制御といった色々な罠がSoCの中には仕掛けられておりますので、油断はできません。

ICE持ってるならこの辺りのコードがいい加減でもなんとかなっちゃうのでしょうが…そんなものを買うお金はありませんので、UARTで頑張るしかないのです。

という訳で、使える道具は何でも使って、可能な限り足場を固めておく必要があるのです。ふみふみ。

04-Mar-2009: 朝昼:いつもの。夕:白飯、刺身、即席味噌汁、納豆他。

05-Mar-2009: 朝昼:いつもの。夕:白飯、スーパーで買った惣菜、炒め物(キット使用)。(20:50)

03-Mar-2009
[具体的な所を書くとするなら]

find . | grep at91とかそんな感じで得られるログがこれ

分量は多いけど…実際は少なくて、んでもってその少ない奴の一発一発が重いと。

ていうかやるんでしょうかこれ。ここまで引っ張ってさらーっとスルーしたいんですが。

朝昼:いつもの。夕:近所の惣菜屋さん(とりいち)の弁当。(21:20)

02-Mar-2009
[…]

01-Mar-2009: 朝:寝てた。昼:妻にお任せ(パスタ)。夕:冷凍庫にあったものを適当に。

02-Mar-2009: 朝昼:いつもの。夕:白飯、キムチ鍋風スープ。

実は秋月ARMをターゲットにした方がお手軽なんじゃないかって気がしています。同じAtmelだし。

Atmelの石、将来性は大丈夫なのかと気になっていたんですが…Microchipは買収を断念したんですね。←実は今さっき知った(情報遅すぎ

多分あの手のRTOSって

辺りに分類できると思うんですが、基本的なOSのロジックは手を付けないとして、CPU依存部分もH8S→H8/300Hノーマルモードほど悲惨な事態にならないとして、今回のケースは残りが重い気がします。

同じARMだからって楽できるのはアプリケーション書いてる人達だけの話で(でもx86ほど楽ではないはず)、ドライバ屋さんやOS屋さんは決してそうではない…というのは多分教科書に書かれていないな、うん。(22:40)