srecloader

TOPPERS/JSPのビルドをgnuツールチェーンで行えたのはよいのですが…

  • ldスクリプトの組み方がよくわかっていない
  • objcopyが正しくS-RECORDを吐いているのかよくわからない
  • gdbの動作をよく理解していない
  • gdbproxyが正しく動作しているのか良くわからない

と、ないないづくしです。これじゃ何をデバッグしているのかわからないので、一計を案じてVisualDSP++にbfin-elf-ldの出力(jsp)を食わせることにしました。とは言え、正攻法ではjspを読んでくれません。また、SRECORD出力であるjsp.srecも読んでくれません。
これを解決するために、S-RECORDのインタープリターを書いてVisualDSP++上で走らせ、ファイル入力からjsp.srecファイルを読ませました。インタープリターはS-RECORDのデータに従い、実機なりシミュレータのメモリにデータを配置します。インタープリターの実行が終了したら、jspからシンボル情報のみを取り込みます。これで、プログラムもシンボルもVisualDSP++環境に取り込むことができました。
なお、命令メモリ空間にはプログラムから書きこむことができませんので、DMAによるコピーを行っています。
と、昨晩はここまでやってバタンキュー。