2012-11-01から1ヶ月間の記事一覧

μT-Kernel for Raspberry Pi おぼえがき(6)

EABI 対応 コンパイラの ABI を EABI にすると、構造体のパディングが変わるため、アセンブラから C の構造体を触っているところで問題が出る。 kernel/sysdepend/cpu/raspib/offset.h に次のような修正を加えて動くようになったが、他にも修正が必要な箇所…

μT-Kernel for Raspberry Pi おぼえがき(5)

タイマー周り μT-Kernel のシステム資源としてタイマーがある。kernel/tkernel/src/timer.c の knl_timer_initialize という関数が初期化ルーチンである。 knl_timer_initialize が呼ばれるまでを順番に追うと、 icrt0.S の kernel_start: の次の行の main()…

μT-Kernel for Raspberry Pi おぼえがき(4)

ソフトウェア割込み番号の割当て Raspberry Pi では割込み番号 0~95 が GPU や ARM 周辺で使われているので、μT-Kernel が使うソフトウェア割込みは 96~127 を使うことにした。AT91 の番号を参考に、下位のビットパターンが同じになる 100~103 番とした。…

μT-Kernel for Raspberry Pi おぼえがき(3)

IRQ ハンドラ ARM の割込み(昔からの TRON の分類で言う「EIT の I」)は、コアでは外部の割込み要因の識別などをおこなったりせず、単一のハンドラを呼ぶようになっている。 AT91 では外部の割込みコントローラを使用しているのでハンドラのコードは簡単だ…

μT-Kernel for Raspberry Pi おぼえがき(2)

シリアル入出力の修正 μT-Kernel では、シリアル入出力の初期化は sio_init というルーチンで、前述の icrt0.S の中から呼ばれており、lib/libtm/src/sysdepend/機種名/sio.S ないし sio.c に定義がある。また、メッセージの表示は tm_putstring 関数を経由…

μT-Kernel for Raspberry Pi おぼえがき(1)

似たような環境に移植する人の参考になるかもしれないことを記録しておこうと思います ソースコードはこちらに http://github.com/metanest/utkernel-pi ローダ Das U-Boot を使用。Raspberry Pi 用は、FreeBSD を移植しているプロジェクトのものが使える ht…