コンピュータにまつわる興味あるモノだけを扱う個人的なゆるいブログ。
by riye_tech_2004
ブログパーツ
検索
連絡先
pcnikki@gmail.com
※トラックバック送信元記事にこのブログhttp://pcnikki.exblog.jp/へのリンクが存在しない場合はトラックバックを受け付けません。ただし、エキサイトブログ同士のトラックバックには適用されません。



東京アメッシュ
GMAIL(SSL)
public: typedef Takel::Diary Observable;
スクイズ研究所
MobileBiz
Ken's Blog
眞鍋かをりのここだけの話


SonyEricsson
ノキア・ジャパン
NECわいわいモバイル
LGモバイル

TSUKUMOネットショップ
ASUS
EPSON Direct ショップ

ブログ口コミポータル話題のjp
八百万神社の杜
Windows Tipsホーム

ワールドビジネスサテライト
カテゴリ
以前の記事
カテゴリ:Brew開発( 7 )
BREWの勝手アプリ
アプリ★ゲットサイトでBREWアプリの登録が可能となったようだ。

自分自身まだ実機を購入していないのでなんとも言えないが、どの程度のアプリが作成できるのだろうか。
Vアプリの場合は使用できないメソッドなどがあり、それを使用しているとFTPサーバーにアップした時にエラーメールが届く。
もちろんオフィシャル作者登録をすれば全機能のアプリを作成できるのだが。

勝手アプリが作成できるのであれば嫌っていたBREWアプリも作ってもいいかな~なんて思うけど、一般の人が高額なARMコンパイラを購入してまで勝手アプリを作るのであろうか?

そろそろBREW機1台ゲットするかな。
[PR]
by riye_tech_2004 | 2005-02-15 23:52 | Brew開発
Brew開発記~ARMコンパイルの掟~
Brew開発を新規で始める人がいたら注意すべき点が1つ。
「グローバル変数が使えねえ」
だ。腹立つのでちょっと言葉が汚い(笑。
とは言っても、エミュレータレベルでは問題なくグローバル変数が使えて開発できるのだから始末が悪い。
実機用のARMコンパイルを行った時に発覚する。
正確にはリンクが行えない。
グローバル変数があるとリンクエラーが出て愕然としてしまう。
「エミュで問題無いのになんでやねん!」
と怒ってもしかたがない。
ソースを修正しなければならないのだ(T_T

ちなみになぜグローバル変数が使えないか。
Brewアプリはメモリ再配置を行うので固定アドレスを嫌っているようなのだ。
例えば、

char *pt = 0;
void hogehoge( char *addr )
{
    pt = addr;
}
なんてコーディングをすると確実にARMリンカに怒られる。
void hogehoge( char *addr )
{
    char *pt = addr;
}
と言うのはOKだ。

ファイルで処理別にソースを分ける場合、ソースの頭でグローバル変数を定義したりするがこれはやってはいけない。
グローバル変数の存在が許されるのは、アプリ本体生成時に利用する構造体のみだ。
この構造体にグローバル変数をすべて定義する。
お陰でグローバル変数を利用する関数はすべてその構造体のポインタを渡さなければならない。
グローバル変数を使わないようにするとローカル変数を多用してしまいがちだが、機種によってはスタック容量も意識しないといけない。
あ~~~面倒だ~~~・・・Brew。
PalmOSの方が作りやすかったな~。

ちなみにエミュレータ用のBrewアプリは”Windowsのアプリを作っているようなもの”なので、決してエミュレータの動作を信用してはならない。
思いっきりx86コンパイルしているから。

さて、、、
これからエミュで動くのに実機で動かないと言う謎の解明作業が待っている・・・。
[PR]
by riye_tech_2004 | 2004-12-20 19:22 | Brew開発
Brew開発記~開発環境構築のまとめ~
Microsoft Visual C++6.0(Visual Studio 6.0)をインストール。
できれば6.0のほうが無難ではあるが、.NET版を使用する場合は、対応パッチのインストールが必要。
パッチはここから"BREW® Add-Ins 3.0 for Microsoft Visual Studio"をインストールする。



ARMコンパイラの購入。
実機で動かすにはARMのバイナリにしなければならない。エミュレータレベルではWindowsのアプリを作っているだけに等しい。
価格はBrew対応RealView $1,500なり。



ARMコンパイラのインストール
買ってないので不明・・・。
BREW SDKより先にインストールするのが正しいらしい。



BREW 2.0/2.1 SDKをインストール。
それぞれのバージョンは同居できないので注意する。後からインストールしたほうが有効となる。悲しい仕様だ。



日本拡張パッケージファイルのインストール。
これをインストールしないとmmfが鳴らない(笑。
こちらも2.0/2.1をパッケージが分かれているので注意。
[PR]
by riye_tech_2004 | 2004-12-01 15:11 | Brew開発
Brew開発記~mmfが鳴らない~
Brew機もJava機と同じくSMAFを使用している。(SMAPではない)
SMAFはYAMAHAの音源チップ(LSI)で再生できる着メロ用の音楽データフォーマットだ。
auとVodafoneで採用されている。ちなみにDoCoMoは"MFi"と言う独自?フォーマットだ。こちらは仕様が公開されていないのが痛い。

Brewでの音楽再生フォーマットはSMAFだけではなく、MIDIやMP3なんかも再生できるようだ。この辺はさすがと言いたい。
今回のプロジェクトはSMAFのデータを再生しなければならないので、まずMIDIデータを鳴らしてサンプルで検証する。
*.midファイルをロードしてmidインターフェースを作成すればあっさりエミュレータで鳴った。
次に*.mmfを指定してmmfインターフェースを作成して鳴らしてみた。
「鳴らねえ・・・」
デバッガでファイルを読み込みに失敗していないか確認してみる。
が、その前のmmfインターフェース作成に失敗している。
Brewはインターフェースを作成してからそれぞれの音楽データファイルを読み込み、再生するのが基本手順だ。
「エミュレータでmmfはならないのか?」
そんなハズはない、MIDIが鳴ってSMAFが鳴らないのはおかしい。

色々ネット調べると世界のBrew機でSMAFが鳴るのは現状では日本の携帯だけらしい。
auの技術情報ページに”日本拡張パッケージ”があるのを忘れていた。
SDKばかりに気をとられてすっかり頭から離れていた・・・。
さっそくこれをインストールしてSMAFが無事鳴った。

めでたしめでたし。
[PR]
by riye_tech_2004 | 2004-11-30 14:48 | Brew開発
Brew開発記~エミュレータ環境の問題~
サンプルソースをビルドするとまずこの画面(「メモリ容量を節約するためにこのアプリケーションはアンロードされました。新しいバージョンをダウンロードしてください。」)が出てしまう。
ソフィア・クレイドルのFAQによると、実行バイナリのディレクトリ構成が悪いとこのような画面が出るらしい。
もう少し気の利いたエラーメッセージを表示してもらいたいものだ。

VC(VisualC++6.0)でビルドすると、実行バイナリはDebugまたはReleaseディレクトリに出力される。
Brewのエミュレータはこのディレクトリ構成に対応していないようなので臨機応変にこちらで対応しなければならないようだ。
a0003824_16124784.jpg


解決方法は?
[PR]
by riye_tech_2004 | 2004-11-25 16:32 | Brew開発
Brew開発記~情報収集~
リンクのまとめ。

au技術情報
ここはまず最初にチェックするサイトだ。

BREW JAPAN .COM
Qualcomm JapanとデジタルハリウッドによるBREWの情報発信サイト。
技術的な情報、ビジネス的な情報、またデベロッパーラボの紹介等、さまざまな面でBREW開発をサポートする情報を提供している。

Qualcomm BREWサイト
Qualcomm社が提供するBREW専門の総合WEBサイト。
世界的なBREWの動向やディベロッパー向けの技術情報、SDK等を提供している。

ソフィア・クレイドル
BrewFAQノウハウ集がオススメ。
Qualcommのサイトではサンプルソースが認定されたデベロッパー以外公開されていないが、こちらのサイトはサンプルソースを公開してくれている。(ありがたや)

ITmedia モバイル連載
こちらにBrewプログラミングの連載記事がある。(ありがたや)
[PR]
by riye_tech_2004 | 2004-11-20 02:58 | Brew開発
Brew開発記~序章~
今までBrewの仕事は避けてきた。
興味が無い訳ではないが庶民が実機で開発が出来ないと言う開発環境が許せないからだ。
選ばれた者しか開発ができない(笑。

そしてついに選ばれてしまったー。

他のプログラマから開発状況を聞くたびブルーになる。
が、やるないとご飯が食べられない。

しかも今回の仕事はちょっとした問題があってかなりモチベーションが上がらない。
こんな気持ちで仕事ができるのか?

「やるしかないのね~」

という訳でBrew開発記のはじまりはじまり~。
[PR]
by riye_tech_2004 | 2004-11-19 20:20 | Brew開発