2012-01-01から1ヶ月間の記事一覧
雑誌インタフェースの記事のフォローアップを書き始めた。書くのが遅い、、、 http://www.sinby.com/tech/linux/uClinux-MicroBlaze根性があれば記事をよみながら、linux を動かすことができるはず、、、コメントのある方は下記のコメント欄からどうぞ。
OS も復活した。i386 でまず動き出した。次は A9。
http://www.sinchiba.com で復活した。
Xilinx の QEMU を動かした。QEMU 上の C のデバイスも書けるようになった。System C にも対応した。 http://www.sinby.com/tech/hackers/000-qemu/ もうチョイ記事を増やしていこう。
とりあえず QEMU から SystemC を呼び出して TLM をつかって read/write ができた。
複雑だと思ったのはポインタを複雑に使っているからだった、、、bus は irq 用のポインタを用意している。 qemu_irq *irqp[QDEV_MAX_IRQ]; 簡単にするために配列を考えずに考えよう。(少し簡単になった) qemu_ira *irqp sysbus_init_irq でデバイス側の ir…
irqp = arm_pic_init_cpu(env); こんなかんじで platform から初期化する。どんな割り込みモデルを持っているかを知っているのはプラットフォームだから。ターゲットは知りえない。これで、割り込みルーチンが登録される。arm_pic_init_cpu では arm 用に設…
TLM は簡単なモデルは簡単だな。当たり前か。
QEMU 上の Zynq でも gdb でアクセスできた。bss をクリアするアセンブラコードも書いたので c が使えるようになった。gdb から step 実行も可能。 > =1/arm-softmmu/qemu-system-arm -S -gdb tcp::1234 -M xilinx-zynq-a9 -m 256 -kernel callMain.elf -nog…
http://elm-chan.org/fsw/ff/00index_e.htmlIE からアクセスすると yahoo へ ridrect するようにできている。IE が嫌い?
ARM Architecture Reference Manual によるとvector は同じ構造らしい。アドレス0がreset時のスタートも同じ(モードによって変えられるみたいだが)。だから、昔書いた(8年くらい前) ARM7 のコードも動く。しかも QEMU で動く。 なんか OS の開発楽だなぁ、…
QEMU versatilepb でむかしの ARM-7 のソースを載せてみる。意外と簡単に動いちゃった。まずは qemu の起動。gdb サーバの指定をしておく。 qemu-system-arm -S -gdb tcp::1234 -M versatilepb -m 256 -kernel sdramTest_32bit.elfで、gdb を起動し接続。 > …
state = FROM_SYSBUS(sign_gpio_state, sys_bus_dev); // 先頭が SysBusDevice であるという前提があります。 // FROM_SYSBUS を使っていますが、単純なキャストの方がわかりやすい。 // FROM_SYSBUS は sysdev をキーワードに container_of を使いますが //…
あとどうでもいいけど graphviz の話題 digraph QEMU_SystemC { size="8,5" //node [shape = box, fixedsize=true, width="3"]; node [shape = box]; edge [dir=both]; QEMU [label=<<table border="0" cellborder="0" cellpadding="3" bgcolor="white"><tr><td bgcolor="black" align="center" colspan="2"><font color="white">State #…</font></td></tr></table>
まず Linux 上で作業。ToDoとして QEMU で あるアドレスをアクセスしたら呼ばれるコールバックルーチンを登録 コールバックルーチンから SystemC を呼び出す そのためには QEMU でファイルシステムを用意せずに実行できる環境作る必要があるかも。 う〜ん。…
MinGW は Cygwin を必要としないミニマムな Unix 環境(らしい)。 http://ja.wikipedia.org/wiki/MinGWどうも、私の使っている Cygwin は -mno-cygwin に対応している gcc が入っているらしく MinGW をインストールしなくても gcc -mno-cygwin test.c -o te…
各 machine の init がよばれる。例えばversatile_init。これは main の延長上呼ばれる。ここで、arm_load_kernel が呼ばれる。kernel といいつつ elf と uboot とベタイメージに対応している。必要があれば、linux であると判断されて、initrd が定義されれ…
すぐわかった。32, 16, 8 bit アクセスだ、、、ぎゃくだ 8, 16, 32 の順。配列は4つあるので無駄が一つある、、、なんかセンスないな、、、 整理はされているけど、大昔のトリッキーな C のコーディングを見ているみたいだ。
東電の輪番停電(計画停電)は原子力がなくなると大変なことになりますよというプロパガンダだったの?(文春の記事から)あー「東京電力 プロパガンダ」で検索するといっぱい出てくるね。だとするとこれだけ経済を停滞させたのだから、民事的に賠償責任がある…
まずは Xilinx の qemu を試してみる。http://wiki.xilinx.com/zynq-qemu の指示に従い、 http://www.xilinx.com/member/zynq_linux/zynq_linux.tar.gz をダウンロードして実行。あっさり動く。 意外と速い。プロセッサーは2つ 。neon をちゃんとサポートし…