プログラム

VFP関連のメモ

とりあえずVFPを使う場合の最小のスタートアップコード。 _stack_initは適当にリンカスクリプトにでも書く事にする。とりあえずSVC modeのスタックだけ初期化しておけばいいだろう。 OSの場合は、普通VFP命令を実行して、Undefined Instructionが起こってか…

マルチコア

カーネル空間はデマンドページングじゃないのに、あるタイミングでアクセスできなければならない空間をリードしにいくとアボートする。MMUで変換をかけてみたら、変な物理アドレスにマッピングされている。しかもそのアドレスはMMUの変換テーブルがあるとこ…

LTOもどき

そういやGCCでは、4.1ぐらいから-fwhole-programオプションを付けると、複数のソースファイルを1つと見なす事が出来るためIPOが実行できる。なんかインチキくさいぞ。ちなみにこの辺の最適化はcgraphunit.cに書かれている当然こんなのは無理 gcc -c -fwhole…

LTO

GCC summitを見学しにいったときに、CodeSourceryのMark Mitchellと話をする機会があった。彼はGCCのC++フロントエンドのメンテナで、リリースマネージャーでもある。リンク時最適化については、組み込みの世界でも非常に有用だし、待ち望んでる人達もいるの…

デバッガ

個人的には、ソフトの開発にはデバッガが必須であると考えている。しかし、プロのエンジニアの人たちに聞いてみても、デバッガを使っていない人が驚くほど多い。ちゃんとした(?)ソフトウェアの開発現場に居たことがないのでよくわからないが、みんなどうやっ…

リンク時最適化

ADSのリンカ ARM純正のツールであるADS付属のリンカを実際に使ってみたが、特に未使用関数を削除している雰囲気はなかった。マニュアルを見てみたら、C++の仮想関数の削除をするらしい。一応コールグラフを表示させると、普通の関数でもUNUSEDのキーワードが…