ARM MPCore
いきなりですが ARM アセンブラの話でも。 memcpy の亜種(戻り値なし、必ずコピー発生)を C 言語で、ARM が得意なコード サイズ重視の書き方で書くと、 void my_memcpy(void* dst, const void* src, size_t size) { uint8_t* dstC; const uint8_t* srcC; a…
先日の日記の続き。 Ubuntu 11.04 on PandaBoard 上で自作ゲーム エンジン『Parallel force - パラレル・フォース』が動作しました。 とりあえず OMAP4 の ARM Cortex-A9 を 2 コアちゃんと叩いてくれているみたい。んー。純粋な C++ コードだと Intel Atom …
先日の日記の続き。 Ubuntu 11.04 (x86) (VMWare) 上で自作ゲーム エンジン『Parallel force - パラレル・フォース』が動作しました。 感無量です。ポーティング元の環境依存 API は Win32API(一部に XAudio)だけでしたが、ポーティング先は xlib、FreeTyp…
先日の日記の続き。 『Parallel force - パラレル・フォース』を X-Window 環境へ移植しています。子供の相手をしながらなので休日の割に歩みが遅いですが、ぼちぼちやってます。 タイマー処理 やりたいことは ms 精度のスリープと、ms 精度の時間カウンタ取…
『Parallel force - パラレル・フォース』のウィンドウ処理とバックバッファの転送処理を X-Window 環境に移植したのですが、X11 API (xlib) のマルチスレッドでどハマリして、解決に結構時間を使いました。以下、解決メモです。 X11 API (xlib) のスレッド…
先日の日記の続き。 GCC 対応をさらに進めるために VMWare Player で Ubuntu 11 をセットアップ。それぞれのソフトウェアのダウンロードから、セットアップ完了まで 1h 未満。光回線、11n の無線 LAN、論理 8 コアの CPU、8GB のメモリ、良い時代になったも…
先日の日記の続き。 パラレル・フォースをマルチ プラットフォーム (主に PandaBoard) 対応すべく、Windows 固有 API 利用箇所を徐々に修正していっています。 機能 Windows Linux 補足 Sound XAudio2 ??? 検討がついてません。というか Windows 版の実装を…
先日の日記の続き。 GCC ビルド環境のファイル I/O を Win32 から C++ 標準ライブラリの ifstream 等に変更しました。この辺は標準ライブラリだけあって、つつがなく移行が完了しました。 ただ、相変わらず getFileSize 的な API がなかったり、エラーハンド…
先日の日記の続き。 Win32API のイベント処理に対応する POSIX スレッドの API は下記のようです。 Win32API POSIX 概要 CreateEvent pthread_cond_init 同期オブジェクトの初期化 CloseHandle pthread_cond_destroy 同期オブジェクトの解放 SetEvent pthrea…
先日の日記の続き。 PandaBoard が届くまで、まだしばらくかかるので、パラレル・フォースの GCC4 向けの移植作業を進めていました。もともと Windows 向けに作っていたので、まず手始めに Cygwin 環境でのビルドに対応しました。C++0x 万歳的なコードですの…
先日の日記の続きで、国内の販売代理店に PandaBoard を発注したのですが、んー。1 週間、何の音沙汰もなし、て。『ご注文を承りました』くらい返信できないものだろうか…。もー、なんだか痺れを切らす格好で、解約メールを投げて、PandBoard サイトからリン…
勤務先の会社内で有志が集まって PandaBoard をいじりたおす運びとなりました。業務じゃないのでフランクな感じで。ちょうど NGP の半分くらいのスペックで面白そうだなぁと感じてます。 で、会社でボードを共用するだけでは物足りないなぁと思って、個人で…