gcc

GDBによるターゲットのリセットに関する進展

gcc

これまで、TOPPERS/JSP for BlackfinアプリケーションはGDBからプログラムをロードする場合に非常に面倒な手続きが必要でした。 この理由は、GDBからのターゲットリセットがうまくいかないことになりました。TOPPERS/JSPアプリケーションはリセット状態から…

TOPPERS/JSP for Blackfin更新

gcc

いくつかの更新を行っています Kobanzame用talkthrough Kobanzameで動くTalkthroughコードのgcc版のCVSモジュールを作りました。 TalkThroughのCVSリポジトリ プログラムを展開し、make depend; makeでビルドが完了します。動作は検証済みです。 Toolchain 2…

bin2ldr

gcc

BlackfinプロセッサでのROMからの実行には二つの方法があります。ブート・モードとノーブート・モードです。ノーブート・モードとは一般にIn Place Execution(その場実行)と呼ばれるもので、ROM上のプログラムをそのまま実行します。言い換えると、ROMイメ…

gnuツールチェーンでのTalktThrough

VisualDSP++版で動かしたソースをSUSEに持ってき、わずかな修正で動作することを確認しました。修正点は ccblkfn.hで定義されている組み込み関数をインライン・アセンブラで置き換える というもので、組込み関数がgcc標準ではないので当然といえば当然と言う…

もとい

昨日行ったstart.Sとcpu_support.Sの変更を元に戻すと、何事もなかったかのように動き出しました。行った変更というのは、イベント・フックをファイル間で移動しただけです。 VisualDSP++版ではイベント・フックや割り込みディスパッチャと私が呼んでいるITO…

sample1が動いた

ようやく、TOPPERS/JSP for Blackfinをgnuツールチェーンで動かすことができました。アプリケーションはsampl1。ステップはこんな感じです。 VisualDSP++4.5/EZ-KIT Liteにsrecloaderによってjsp.srecをロード めちゃめちゃロードに時間がかかる。動かないが…

srecloader

gcc

TOPPERS/JSPのビルドをgnuツールチェーンで行えたのはよいのですが… ldスクリプトの組み方がよくわかっていない objcopyが正しくS-RECORDを吐いているのかよくわからない gdbの動作をよく理解していない gdbproxyが正しく動作しているのか良くわからない と…

ビルドが通った

ようやくビルドがエラーなく通りました。これからldスクリプトのきちんとした検討を行わなければなりません。並行してinsightデバッガとシミュレータの用意をしなきゃ。 目鼻がついたらPizzaFactoryに挑戦だ〜。

offset.h

offset.hは、アセンブリ言語からTCBのメンバー変数にアクセスするためのオフセットを宣言するファイルで、gnu tool chain以外の開発ツールに移植する人なら誰でも頭を悩ます難関です。私はVisualDSP++上でTOPPERS/JSPをBlackfinに移植する際、このファイル生…

インライン関数

blackfin-vdspポートは、TOPPERS/JSPのm68kポートを元に m68k->Blackfin gnu tool chain -> VisualDSP++ と、二つの変更を加えたものです。 現在これをbfin-elf環境に戻しているのですが、間抜けなことに上の2番目の項目ではまっていました。m68k/tool_defs.…

インライン・アセンブラ

gcc

インライン・アセンブラはOSの移植性に大きな影響を与えかねない部分です。幸い、visualDSP++のコンパイラのインライン・アセンブラはgccがモデルなので、大まかな部分は一緒です。違いはキーワードとconstraintです。 VisualDSP++ まずキーワードはasm。パ…

甘いかも

TOPPERS/JSPのgnuツールチェーンへの移植において障壁になっていたのがdef_bf533.hをはじめとするインクルードファイルの欠如です。これがないとレジスタにアクセスできませんが、VDSP++から黙ってコピーするとまずいでしょう。 gccのサポートMLでも同じよう…

弱いバインディング

m68kにはhardware_init_hookというシステム依存部で定義する関数があり、リセット直後にCPU依存部から呼ばれます。この関数は名前のとおりハードウェアの初期化をおこなうフック関数です。フックと言うことは、ない場合もあります。m68kのstart.Sは以下のよ…

移植作業メモ

bfin-elf-gccによるビルドの目処が付いたので、すこしずつ作業を進めることにしました。いまのところ、ソースコードの管理を一元化する方向で作業しています。つまり、同じソースでVisualDSP++にもgnuツールチェーンにも対応することが目標です。以下、作業…

定義済みマクロ

gcc

Sparse Logging(2006-05-10)によれば、gccの定義済みマクロはコマンドラインから知ることが出来ます。そこで、以下のコマンドで調べてみました。 $ echo | bfin-elf-cpp -dM どうやら、__GNUC__というマクロが定義されているならば、gccでコンパイルしている…

hex生成とアセンブリ

gcc

OpenSUSE上にgnuのツールチェーンをインストールしたので、少し先に進んでみました。以下のコマンドでhexファイルを生成できます。 $ bfin-elf-gcc test.c $ bfin-elf-objcopy a.out -O ihex test.hex 出来上がったhexファイルを1バイトずつシミュレータに打…

gccバイナリのインストール

gcc

Cygwinのバイナリをblakcfin.uclinuxから取って来てインストールしましたが、bfin-elfがありません。bfin-uclinuxだけです。仕方がないのでOpenSUSE環境にbfin-gcc-3.4-4.1.i386.rpmをインストールするとbfin-elfもインストールされました。 とっつきにくい…

難儀

gcc

TOPPERS/JSP for BFのgcc版は初っ端から躓いています。 まずはツールのビルドと思い、http://blackfin.uclinux.org/ からツールチェーンをダウンロードしましたが、binutilのビルドでエラーが出ます。ドキュメントをよく読むと、uClinuxのカーネルとヘッダー…