vxget_tim()が0を返す

表記のような問題が起きました。VisualDSP++でビルドすると起きず、gccを使ったときだけ起きます。コンパイラの問題化と思い、gccでビルドしたバイナリをVisualDSP++上で見てみましたが、問題はなさそうです。で、デバッガで追跡したところ、CYCLESレジスタが0を返しているようです。
はて、どこかで見たような。
シリコンのアノーマリでした。これは、私が使っているRev 0.2シリコンに起きるアノーマリです。ソースコード中では、bf533/sys_config.cの sys_initialize()で対策を打っています。ところが、条件コンパイルをかけており、この条件はVisualDSP++だけがセットするためgccでは対策が無効になっていました。また、対策自身もVisualDSP++に依存しているため、gccではコンパイルが通りません。
無条件にコンパイルするよう修正する予定です。