2009-01-01から1年間の記事一覧

gdb用MMR宣言をコミット

CVSにADSP-BF533用のMMR宣言をコミットしました。HEADからupdateすれば取得出来ますが、sample/Makefileを変更していますので、たぶんconfigureからやり直さなければ実行時にエラーが起きると思います。 gdbから利用する場合、レジスタはmmrXXXXでアクセスで…

Blackfin JTAG Pod 「刺身包丁」

もなみソフトウェアからBlackfin用JTAG POD「刺身包丁」が正式発売されました。 Linuxでの動作は確認済みで、bfin-gdbproxyを使う場合の設定をBlackfin空挺団のほうにまとめています。 bfin-elf-gdb Eclipseでデバッグを行う JTAGKEY(TinyJTAG)と併記ですが…

子供部屋から出て行く

「オープンソース」の二つの意味という文書が注目を浴びています。 私は以前からTOPPERSプロジェクトは伽藍方式だと言ってましたが、今回のエントリはそういう趣旨じゃなくて、これ。 法的状態としてのオープンソースを確保することによって始めて、オープン…

結局MMR定義セクションは、OBJCOPYで削除する方向で

GDB

id:/suikan/20090628で検討したgdb向けのMMR定義セクションですが、いろいろ考えてもgdbでロードしない方法がわかりませんでした。仕方がないので、Makefileを書き換える方向で進んでいます。 TOPPERS/JSPのコンフィグレータはjsp/sample/Makefileを元にそれ…

チケット17557 コールド・ブート時に再起動する

まだ現象報告を受けただけですが。 チケット17557 コールド・ブート時に再起動する うーむ。「コールド・ブート時のみ再起動」というのは以前GDBのリセット問題の対策用に入れたコードを思い出させます。 GDBのリセット問題 もうちょっときれいに 検討したと…

LDで逃げられないかも

gdb

レジスタ宣言を変数として行ったとき、gdbがいらない領域をelfからロードする問題。 LDスクリプトの .sysmmr : { . = ALIGN(0x0100); sys_mmr.o(SYSRST)} > MEM_SYSMMRとなっているところを、 .sysmmr (NOLOAD) : { . = ALIGN(0x0100); sys_mmr.o(SYSRST)} >…

レジスタ宣言の効果を確認

gdb

レジスタ宣言を組み込んだjspでsample1を作り、gdbに与えてみました。 とても便利です。 そのまま与えると、MMR領域にやはり何か値を書き込もうとします.そこで、 $ bfin-elf-objcopy -R .sysmmr jsp $ bfin-elf-objcopy -R .coremmr jspとして、データを引…

ADSP-BF533のレジスタ宣言完了

gdb

出張中でしたので、移動時間を使ってCORE MMRとSYSTEM MMRの宣言を全部終わらせました。アドレスの正しさの検証には、unixのフィルタ群を活用しているので、ほとんどストレスなしに正しさのチェックを行えます。 明日実験してみるつもりですが、今のところ気…

レジスタの宣言

gdb

Blackfin用のプログラムでは、例えば次のようにしてレジスタへのアクセスを提供するのが普通です。この方法はVisualDSP++で用いられている方法です。 #define pPLL_CTL ((volatile unsigned short *)PLL_CTL)これで例えば *pPLL_CTLとすればC言語プログラム…

google docs

チャットで技術的な話というか、ほとんど打ち合わせに近いことをします。そんなとき、google docsを使えれば便利そうです。なにしろ文書に対して行った編集が、ほぼリアルタイムに共同編集者に伝わるので、絵やスクリーンショットを共有しながらあーでもない…

CVSの使い方を間違えているらしい

間違えているというか、うまく使っていないようです。 HEADを擁するトランクの上でリリースしていたのですが、それは駄目だそうで、トランクはあくまで開発のメインライン、で、リリース用にR3.0.xといったブランチを作り、トランクからブランチへどんどんマ…

実験失敗

GDBでメモリ・マップ・レジスタをアクセスする方法を検討中です。 chip_config.hで extern unsigned int regSIC_IMASK;と宣言して、.ldファイルで _regSIC_IMASK=0xFFC0 010Cのように宣言して見たのですが、駄目です。ELFの中でちゃんと実体のあるオブジェク…

BF52x

周囲で 「BF52xもよくなくね?」 的な話があがってまして、ちょっと検討しました。悪くないけどCFとかSDへのインターフェースがないのが、今となっては寂しいですね。でもハードが手に入るようならTOPPERS/JSPは移植します。曲がりなりにもbfin-gdbproxyを使…

MMA7455Lの変な癖

Freescaleの加速度センサ MMA7455Lをつついています。 昨晩からいじりはじめて、加速度をようやく読み取れたのは先ほどでした。こんなに時間がかかった原因は、MMA7455Lの初期化に手間取ったからです。このICは初期状態ではスタンバイ状態にあり、Modeレジス…

EMUDATレジスタ

d:id:monamour555さんとなぜUrJTAGのデータ書き込みは遅いのか意見を交わしています。たぶん外野からは何の事やらちんぷんかんぷんだと思いますので補足をば。 UrJTAGは外部Flash ROMの書き込み時にJTAG Boundary Scan Register (BSR)をスキャンしてROMへの…

gdbproxyで再度悩む

以前、gdbproxy自動実行用の1CD Linuxを作ったことがあります。 20MBでgdbproxy これはCygwin上でGnu Toolchainを動かしていたときに、Windows上でgdbproxyをビルドできなかったためです。 さて、最近では私もLinuxに何とか慣れてきました。そこで思い切って…

g++4.3への対応

g++ 4.3ではヘッダの整理が行われており、ヘッダの暗黙のインクルードを当てにしているビルドが通りません。 チケット #17210 g++ 4.3でコンフィグレータをビルド出来ない 修正しました。大丈夫のよう。近いうちにMAINにマージします。

レジスタ・アドレス

現在、TOPPERS/JSP for Blackfinのレジスタ・アドレスはADIのインクルード・ファイルをそのまま使っています。しかし、これを変更しようかと思っています。 理由の一つは、ライセンスが不定であること。通常、半導体メーカーが自社半導体上のアプリケーショ…

Release 3.0.1

Release 3.0.1 バグフィックス・リリースです。最近報告された割り込み関係の危険なバグを修正しました。修正点については、ソースツリーのCHANGES.blackfinを参照してください。

Rev 0.0のアノーマリ

ここ1,2年、手元のEZ-KIT Lite BF533の調子が思わしくありません。今後BF51xに開発の主軸を移すつもりなので仕方なしにEZ-KIT Lite BF518の価格*1などを調べていたのですが…。 BF518 Rev 0.0にはかなりきついバグがあり、0.1が出るまで手を出すのを見合わ…

今後の予定

現在、「チケット #16729 dis_int()が排他制御されていない」に対する対策を実装中です。 http://sourceforge.jp/ticket/browse.php?group_id=1240&tid=16729 実装と言っても、 dis_int()の廃止 chg_ims()の廃止 ena_int()内部で排他処理をきちんとする であ…

基板

monamour555さんところから: 何気なく「陰気な男」とSafariの検索窓に入れたら,Googleから「陰気な男でいいですか」とsuggestionが来た.すげえ. じゃ、私からも一つ「googleで『基板』を画像検索すると、fenrirさんのサイトにがトップに来る」 http://im…

チケット #16810 hw_timer_initialize()が、冗長なIMASK操作をしている

登録のお知らせ。不具合は起こしませんが、冗長なコードです。修正します。ただし、修正は#16729の後です。

#16714のバグを修正

以下の問題を修正しました。 チケット #16714 多重割り込み時にIMASKを変更すると、間違ったハンドラが呼ばれる 修正点は以下の3点です cpu_support.Sのcall_interruptラベルの直後でcli命令により割り込みを禁止 cli命令の実行によって得た古いIMASKの値をc…

割り込みの排他処理に関するバグ(2)

昨日のエントリにコメントをいただきました。 ujinosuke 2009/05/18 12:55 #16714は candidates = priori... の部分をi_lock_cpu()等でLockすることで解決はできませんでしょうか? #16729 はdis_intする前に必ず対象デバイスをOFFして(割り込みをかからない…

割り込みの排他処理に関するバグ

TOPPERS/JSP for BlackfinのRelease 3.0.0に関して、いくつか重大なバグの報告がありました。そのうち2件にかんしては検討の結果バグであることが判明しています。以下、概要と考察です。 チケット #16714 多重割り込み時にIMASKを変更すると、間違ったハン…

認識できた

昨日書いたとおりbfin-gdbproxyに、FT2232を使ったICEをUSBのポートによっては認識できないと言う問題がありました。検索しても同じようなことを言っている人はいないので、本日セルフパワードUSBハブを買ってきました。エレコム USB2.0 ハブ 7ポート ACアダ…

USBポートへの依存性?

Ubuntu Linux 8.04LTS上で何とか動いているbfin-gdbproxyですが、一つ気にかかっていることがあります。FT2232デバイスをAMDチップセットのUSBポートに挿すと動作しません。VIA製のUSBチップのポートに挿すと動作します。別PCで試しましたが、Intel 945チッ…

コツが掴めてきた

コツがあるのかよ!と突っ込まれそうですが、癖というか、地雷を避けながらEclipseでBlackfinアプリのデバッグをする方法が分かってきました。 きちんとしたまとめは、空挺団の方に書きますが、現時点で分かっていることを書きなぐると、 bfin-elf-gdbとbfin…

GanymedeでBlackfinのデバッグができたかも

速報。 VMWareではなく、スタンド・アローンPCにインストールしたUbuntu Linux 8.04 LTS 上で、Eclipse 3.4 (Ganymede)の実験をしていました。 ふと、思い立って、Zylin CDTではなくCDT + GDB Hardware Debugging Plug-inの構成にしてみたところ、あっさりロ…