ソースの表示以前のリビジョンバックリンク全て展開する/折り畳む文書の先頭へ Share via Share via... Twitter LinkedIn Facebook Pinterest Telegram WhatsApp Yammer Reddit Teams最近の変更Send via e-Mail印刷パーマリンク × ATIccelerator II 某所で、今更ながらIntel Macに初めて触った。 感想。すんげー速いの。 Expoéもジニーエフェクトもスススゥ〜と滑か。Safariも起動と同時にサイトが表示される。コンパイルも爆速。ターミナルでmakeの様子を見てると、正に滝のごとくコンパイル結果が表示されて行く。なんなんすか、この速さは。 対してうちのPPC Mac mini 1.42GHz@1.67GHzは、カクカク。コンパイルも「はわわ…今構文解析中なんですぅ」ってな感じ。解像度がWUXGAってせいもあるんだろうけど(某所のモニタはSXGA)。 何とか、もう少し速くならないものかと、ATIccelerator IIを入れて、グラフィックチップのクロックアップをしてみた。 PPC Mac miniに搭載されているのはRadeon 9200で、コアクロックとメモリクロックはそれぞれ250MHz/200MHz。こいつらを333/250MHzにした。 今のところ、これといった不具合はなし。そして、肝心の体感速度も大差なし…orz MacBookProが欲しいぜ、こんちくしょう。 3D Mixer Unitと戯れる 現在、某ソフトウェア会社にインターンシップに行っており、会社の主力商品のMac版の開発に向けた、基礎研究なんぞをさせて貰っている。就活もロクにせずにね。 その主力商品というのが音声処理を行うソフトのため、Mac版ではCore Audioを使う必要がある。なので基礎研究はCore Audioが中心だ。既に音が出る段階までは出来てるので、今日は5.1chとかのマルチチャンネルに対応すべく、3D Mixer Unitの検証をした。 例によって資料は殆どない。Technical Note TN2112: 3DMixer Audio Unitだけが唯一の資料と言ってもいい。珍しく日本語版もある。一応、/Developer/Examples/CoreAudio/Services/にAUMixer3DTestという名前通りのサンプルもあるが、規模が割と大きい上にC++の機能がバリバリ使われてて、わけがわからんw 実装は、このTNがかなり分かり易かったため、結構すんなりとできた。Audio File Player Unitと組み合わせて音が出ことを確認。この成果は、そのうち公開できるかと。 ちなみに、件のソフトはC++で書かれているため、今回作った検証アプリもメインはC++で書き、UIだけはCocoaで書いた。それゆえObjective-C++を(初めて)使ったが、Objective-Cクラスのインスタンス変数として持ったC++クラスって、コンストラクタ/デストラクタが実行されないんだね。今のところ格段問題は無いけど。 風邪ひいてた 金曜日の夕刻から今日の午前まで、風邪でダウンしてた。風邪で寝込んだのは3年ぶりくらい。 俺の場合風邪はのどから来るので、のどに違和感を感じるとすぐさま、のど飴漬け。で、それでもよくなる兆しがなければ市販風邪薬投与、という流れでほぼ100%完治するさせるのだけれども、今回は初期症状から発熱までが早かったなぁ…。初期症状の咽の違和感も、いつもとはなーんか違ったし。 でもまぁ、症状自体はそんなに重くなく、熱はせいぜい37℃台で咳も大した事なく、穏やかな闘病生活となったのは幸いだった。 ああ、もう2月も終わりか…。 Teaboard:Hello, world 開発環境の構築も完了したところで、いよいよ「Hello, world」だ。 まずは作業用SDカード領域の確保。 ROMディスクから起動していることの確認[/SYS]% df PATH DEV TOTAL FREE USED UNIT MAXFILE NAME /SYS rda 1829 0 100% 1024 256 PM:TBMX1 パーティションの確保 [/SYS]% hdpart pcb pcb [C:483 H:64 S:63 B:1953792 (954 MB)] No System Boot StartCHS EndCHS SecNo SecCnt Size 1 13 ------ 00 0: 0: 0 0: 0: 0 0 0 0 KB 2 00 ------ 00 0: 0: 0 0: 0: 0 0 0 0 KB 3 00 ------ 00 0: 0: 0 0: 0: 0 0 0 0 KB 4 00 ------ 00 0: 0: 0 0: 0: 0 0 0 0 KB ** Create/Delete/Boot/Edit/Quit ? c Create PartNo (1-4) ? 1 Size [GB/MB/KB,All] (<201MB) ? 200M No System Boot StartCHS EndCHS SecNo SecCnt Size 1 13 BTRON 00 0: 2: 4 101: 63:63 129 411135 200 MB 2 00 ------ 00 0: 0: 0 0: 0: 0 0 0 0 KB 3 00 ------ 00 0: 0: 0 0: 0: 0 0 0 0 KB 4 00 ------ 00 0: 0: 0 0: 0: 0 0 0 0 KB ** Create/Delete/Boot/Edit/Update/Quit ? b Boot PartNo (1-4,Clear) ? 1 No System Boot StartCHS EndCHS SecNo SecCnt Size 1 13 BTRON 80 0: 2: 4 101: 63:63 129 411135 200 MB 2 00 ------ 00 0: 0: 0 0: 0: 0 0 0 0 KB 3 00 ------ 00 0: 0: 0 0: 0: 0 0 0 0 KB 4 00 ------ 00 0: 0: 0 0: 0: 0 0 0 0 KB ** Create/Delete/Boot/Edit/Update/Quit ? u ** pcb: Updated Master Boot Block パーティションのフォーマット [/SYS]% format -b pcb0 WORK Format pcb0 [STD] WORK Logical Formatting... Writing BootCode... Disk Format Success. </coee> * **パーティションのマウント**<code bash> [/SYS]% att pcb0 pcb0 pcb0 -> pcb0 システムファイルのコピー [/SYS]% cp -b -v -r * /pcb0 copied: SBOOT copied: KERNEL.SYS copied: SYSCONF copied: DEVCONF copied: STARTUP.CMD copied: STARTUP.CLI copied: rsdrv copied: netdrv copied: unixemu copied: tcpipmgr copied: NETCONF copied: cli copied: .xcli copied: bin パーティションのアンマウント [/SYS]% det pcb0 再起動 [/SYS]% # bd SDカードからブートしているか確認 [/SYS]% df PATH DEV TOTAL FREE USED UNIT MAXFILE NAME /SYS pcb0 205564 203312 1% 4096 17408 WORK 上記通りにやったのにもかかわらず、内蔵ROMディスク(rda)から起動するようならば、一度Teaboardの電源を落として(USBケーブルを抜いて)から起動すると、SDカードから起動すると思う。 次は、Hello, worldのコンパイル。 Teaboardで走るプログラムは「プロセスベース」と「T-Kernelベース」の2つに大別される。基本的にプログラムは、それぞれのベースに合わせたlocal/te/bapplとlocal/te/kappl以下で開発を行う。今回はプロセスベースのHello, worldを作成する。 ディレクトリ構成/opt/local/te/bappl /hello /src /tbmx1 hello/srcにソースファイルを格納し、バイナリはhello/tbmx1に格納する。デフォルトのmakerulesでは、バイナリ格納用のディレクトリ名によって、ターゲットを自動的に切り替えるようになっいるっぽい。なので、基本的にはこのディレクトリ構成は変更しない方がいいと思われる。 hello.cの作成 hello/srcにhello.cを作る。 #include <stdio.h> int main(void) { printf("Hello, world¥n"); return 0; } Makefileの作成 これもhello/srcに作る。 include ../../etc/makerules VPATH = ../src hello: hello.o make make Teaboard:クロスコンパイラのビルド Teaboardの開発環境はgccで、CygwinとLinux用のクロスコンパイラが添付されている。これらgccは、当然Mac OS Xでは使用できない。幸い、開発環境再構築用のパッケージ一式が提供されているので、それを使ってOS X用のgccを構築する。 準備 以下のディレクトリ構成で作業を行う。各自の環境にあわせて、適宜読み替えて欲しい。尚、うちの環境では~/にusrディレクトリを作り、/optは~/usrへのシンボリックリンクとなっている。 /opt /local /te te.tlsrc.arm.05.tar.gz te.tlsrc.common.04.tar.gz te.resource.tbmx1.01.tar.gz /tool /build /gnu /distribution binutils-2.13.tar.bz2 gcc-3.2.2.tar.bz2 gdb-5.2.tar.gz 開発環境再構築用パッケージの展開 cd /opt/local/te/ tar zxvf te.tlsrc.arm.05.tar.gz tar zxvf te.tlsrc.common.04.tar.gz tar zxvf te.resource.tbmx1.01.tar.gz binutilsの構築 cd tool/build/gnu/binutils-2.13-tkernel/ cp ../etc/makerules ../etc/makerules.unknown make BD=/opt/local/te TARGET=arm-unknown-tkernel extract patch-tkernel make BD=/opt/local/te TARGET=arm-unknown-tkernel clean configure make sudo make BD=/opt/local/te TARGET=arm-unknown-tkernel install gccの構築 cd /opt/local/te/ sudo cp -R include tool/unknown/arm-unknown-tkernel/sys-include cd tool/build/gnu/gcc-3.2.2-tkernel/ make BD=/opt/local/te TARGET=arm-unknown-tkernel extract patch-tkernel sudo make BD=/opt/local/te TARGET=arm-unknown-tkernel clean configure make sudo make BD=/opt/local/te TARGET=arm-unknown-tkernel install sudo rm -R /opt/local/te/tool/unknown/arm-unknown-tkernel/sys-include gdbの構築 make中に「gdb-5.2-tmonitor/gdb-5.2/gdb/arm-tdep.c:2692: error: label at end of compound statement」というエラーが出るので、当該箇所を予め修正しておく。 case ELFOSABI_ARM: /* Assume GNU tools with the old APCS abi. */ return ARM_ABI_APCS; default: break; // ◆◆この行を加える◆◆ } cd ../gdb-5.2-tmonitor/ make BD=/opt/local/te TARGET=arum-unknown-tmonitor extract patch-tmonitor make BD=/opt/local/te TARGET=arm-unknown-tmonitor clean configure make sudo make BD=/opt/local/te TARGET=arm-unknown-tmonitor install makerulesの編集 /opt/local/te/bappl/makerulesと/opt/local/te/kappl/makerulesの「開発環境のベースディレクトリ」を編集する。 ifndef BD # 開発環境のベースディレクトリ BD := /opt/local/te endif < Newer Posts 1 2 ... 72 73 74 75 76 77 78 ... 83 84 Older Posts > start.txt 最終更新: 2022-07-27 15:26by Decomo