BREW(Binary Runtime Environment for Wireless) 11
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2009/06/04(木) 08:58:09■テンプレ
http://brew.s214.xrea.com/pukiwiki/
http://kintubo.kakiko.com/brew/
■前スレ
10 http://pc12.2ch.net/test/read.cgi/tech/1195449992/
■過去スレ
09 http://pc11.2ch.net/test/read.cgi/tech/1166675852/
08 http://pc8.2ch.net/test/read.cgi/tech/1147832791/
07 http://pc8.2ch.net/test/read.cgi/tech/1137502541/
06 http://pc8.2ch.net/test/read.cgi/tech/1126846736/
05 http://pc8.2ch.net/test/read.cgi/tech/1119056460/
04 http://pc8.2ch.net/test/read.cgi/tech/1111028365/
03 http://pc5.2ch.net/test/read.cgi/tech/1096006023/
02 http://pc5.2ch.net/test/read.cgi/tech/1076511398/
01 http://pc2.2ch.net/test/read.cgi/tech/1011078904/
関連情報>>2-10
0266デフォルトの名無しさん
2009/12/18(金) 23:48:40別に今の会社に前の会社のソースコードを公開すると言ってるわけでもないし、
いちプログラマーとしてGNUARMとRVCTのELFファイルの違いを解析するのに
何の問題があるのか、こっちが知りたいわ。
っていうか>>264と>>265はELFファイルが何なのか分かってる?
0267デフォルトの名無しさん
2009/12/18(金) 23:54:37おまえは退職した会社から知的資産を持ち出してんだよ。
再利用できないからいいとか、なんでそんな話になるんだよ。
0268デフォルトの名無しさん
2009/12/18(金) 23:56:090269デフォルトの名無しさん
2009/12/18(金) 23:56:270270デフォルトの名無しさん
2009/12/19(土) 00:00:03ELFから元の処理割り出せるか。そう考えるとソースコード持ち出しと変わらん気がするな。
まぁそれでも、コード(とELFファイル)を別会社に公開したりしない限りは大丈夫だろ。
そりゃリソースの持ち出しって点で厳密にいえば契約違反の可能性はあるけどさ、そこは
空気読もうぜ・・・
0271デフォルトの名無しさん
2009/12/19(土) 00:07:23ホント、底辺ゲームプログラマってやだな。
0272デフォルトの名無しさん
2009/12/19(土) 10:46:360273デフォルトの名無しさん
2009/12/22(火) 11:49:410274デフォルトの名無しさん
2009/12/22(火) 11:50:140275デフォルトの名無しさん
2009/12/23(水) 19:32:10#ifdef _DEBUG
#define TRACE DBGPRINTF
#else
#define TRACE
#endif
現状は上記のように実装していますが、ログOFF時にARMで下記Warningが出てし
まいます。
Warning: C2917W: no side effect in void context:
過去ログをみていくつか見つけましたが、他にいい解決方法ありませんか?
#ifdef _DEBUG
#define TRACE(...) DBGPRINTF(__VA_ARGS__)
#else
#define TRACE(...) /* nop */
#endif
⇒VC2003で使えない
#ifdef _DEBUG
#define TRACE DBGPRINTF
#else
#define TRACE if(0)DBGPRINTF
#endif
⇒VC2003(警告レベル4)で条件式が定数とのWarningが出る。ARMでは未確認
#ifndef _DEBUG
#undef DBGPRINTF
#define DBGPRINTF
#endif
#define TRACE DBGPRINTF
⇒結局Warningは出る。
0276デフォルトの名無しさん
2009/12/24(木) 03:50:54VC時は常にON、実機コンパイル時はWarning出ない方法で実装、とか。
0277デフォルトの名無しさん
2009/12/25(金) 17:01:25#ifdef _DEBUG
#define TRACE DBGPRINTF
#else
#define TRACE (void)
#endif
0278デフォルトの名無しさん
2010/01/05(火) 15:55:490279デフォルトの名無しさん
2010/01/09(土) 16:41:55.net by au の話題はここでよろしいでしょうか?
0280デフォルトの名無しさん
2010/01/10(日) 02:58:360281デフォルトの名無しさん
2010/01/20(水) 16:39:51SETAEERECTで値をセットした後に、IMEDIA_SetRectを呼ぶと
EBADSTATEが返ってくる。なんでだよ。
SETAEERECTの第3引数と第4引数を0にしてるのに
0282デフォルトの名無しさん
2010/01/26(火) 15:04:430283デフォルトの名無しさん
2010/01/26(火) 15:18:240284デフォルトの名無しさん
2010/01/26(火) 15:44:150285デフォルトの名無しさん
2010/01/26(火) 21:27:120286デフォルトの名無しさん
2010/01/27(水) 02:49:550287デフォルトの名無しさん
2010/02/03(水) 16:55:33元々gccで動作していた画像を表示するだけの俺々フレームワークを、
RVCT向けに若干手直ししたのですが、動作してくれないもので困っています。
コンパイラ/リンカオプションは下記と同じ。
ttp://d.hatena.ne.jp/melpon/20090424
AEEClsCreateInstance() 直後のDBGPRINTFからも何も出力されず、
何処が問題かわかりません。
最終的にはSTLとboostを使用するつもりで上記サイトのオプションを使用していますが、
現在のプログラムはそれ以前の(例外未使用、STLも使っていない)状態です。
mifやsigはgccで動作確認していますので問題ないと思うのですが、
どのあたりが怪しいかアドバイスお願いします。
0288287
2010/02/03(水) 17:38:34コンパイラオプションに --split_sections を追加したら動作しました。
0289デフォルトの名無しさん
2010/02/03(水) 18:46:16例外、STL、boost::shared_ptr 動作おk!
0290デフォルトの名無しさん
2010/02/03(水) 19:28:07サイズは?
0291289
2010/02/03(水) 20:08:57画像読み込み&表示するだけの素のフレームワークが16KB。
string 1行と例外追加したら37KBでギョッとしたけど、
その後 vector、iterator、stack、map、deque、shared_ptr を使用して、
リソースダウンロード〜パース、表示するトコまで書いて56KB。
gz圧縮後28KB。
十分使えそう。
0292デフォルトの名無しさん
2010/02/06(土) 13:42:080293デフォルトの名無しさん
2010/02/06(土) 14:16:270294デフォルトの名無しさん
2010/02/12(金) 00:03:34ぶつかっています。実機上の動作を見ると、コンストラクタが呼ばれて
いないようです。new と同時にコンストラクタがちゃんと動くように
するためには、何か処理が必要なのでしょうか?
__rt_lib_init() を呼んだり、__cpp_initialize__aeabi_() を呼んだり、
リンクオプションに --ref_cpp_init や --cppinit=__cpp_initialize__aeabi_
をつけたりと、試行錯誤しているのですが、問題が解決しません。
"C++ ABI for the ARM Architecture" という文書の "3.2.2.3 Library
helper functions" に、"Compilers are not required to use these
helper functions but runtime libraries must supply them" という
記述があるのですが、それが関係していたりしますか?(必要なヘルパー
関数のリンクに失敗しているとか?)
0295294
2010/02/12(金) 00:04:58あと、関係するのかどうか分かりませんが、私のソースで仮想デストラクタを
使用しているのと、リンクしなければならない外部ライブラリが浮動小数点
演算を F??? マクロを使わずにやっている、との理由により、そのままだと
libspace.o がリンクされてしまうので、下記のような対処をして libspace.o
がリンクされないようにしています。これも何か影響ありますでしょうか?
(というかこの対処が正しいという確信もないのですが・・・)
■ 対処1
次の3つの関数を定義。AEEApplet 構造体内に確保した __USER_LIBSPACE_SIZE
(rt_misc.h) サイズの領域へのポインタを返すように実装する。
__user_libspace()
__user_perproc_libspace()
__user_perthread_libspace()
0296294
2010/02/12(金) 00:05:53上記の関数がリンク時に unused セクションとして削除されないように、
--keep オプションを armlink に指定する。
--- ソースコード ---
// 生成するコード群にセクション名を付ける。
#pragma arm section code="my_code", rodata="my_rodata", rwdata="my_rwdata", zidata="my_zidata"
// ARM コードの生成を強制する。
#pragma arm
void *__user_libspace(void) { ... }
void *__user_perproc_libspace(void) { ... }
void *__user_perthread_libspace(void) { ... }
--- リンク時 ---
"--keep my.o(my_*)" オプションを付ける。
■ 対処3
仮想デストラクタを使用すると kernel.o から main が参照されてしまう
ようなのと、#pragma import(__use_no_semihosting) をするとセミホス
ティング関数を使用すると文句を言われてしまうので、下記の関数を
(ほぼ内容は空で)実装をする。
int main(void);
void __main(void);
void __rt_raise(int signal, int type);
__user_initial_stackheap(unsigned /*R0*/, unsigned /*SP*/,
unsigned /*R2*/, unsigned /*SL*/)
■ 対処4
念のため、malloc(), free(), atexit(), getenv() なども実装しておく。
0297デフォルトの名無しさん
2010/02/13(土) 01:10:170298294
2010/02/13(土) 01:48:04ファイルをMODファイルに変換することにより、問題は解決しました。
グローバル変数やクラス変数を一切使わないようにコーディングして
いたので、fromelfで大丈夫かと思っていましたが、仮想関数を使って
いたので、elf2modを使わないとだめでした。これはFAQレベルの問題
でしたね。お騒がせしてすみませんでした。
ちなみに、「コンストラクタが呼ばれない」というのは勘違いでした。
__rt_lib_init()や__cpp_initialize_aeabi_()の呼び出しや、
--ref_cpp_initや--cppinitオプション等も不要でした。
0299デフォルトの名無しさん
2010/02/15(月) 15:47:28IWebとIWebRespの参照カウントおかしくない?
同期してるみたいでIWEB_GetResponseコール後にどっちも2になってる。
wikiのSAFE_SHELL_RELEASEを参照カウントに応じてnull埋めするように直したら
IWebRespの開放周りでエミュが落ちるようになったぞ(´・ω・`)
void SAFE_SHELL_RELEASE(void*& p){
if (p != NULL) {
if( IBASE_Release((IBase*)p) == 0 ) {
p = NULL;
}
}
}
0300デフォルトの名無しさん
2010/02/15(月) 18:31:10あほかー。何のための null 埋めなのか理解していない証拠だぞ。
BREW のシステムで参照カウントを増加させる場合もあるから、
こっちはカウントなんて気にせず必要無いものを Release していけばいい。
0301デフォルトの名無しさん
2010/02/15(月) 19:25:55ん〜〜〜・・。
ピコーン(AAry
ゴメン。何か勘違いしていた。
AddRef使ってて299の処理じゃないと困るなーと思ってた部分も
wikiのソースで上手く動いた。
お騒がせしました。
0302デフォルトの名無しさん
2010/02/17(水) 22:58:07ライフサイクルが親と違う非同期部分が、依存している親インスタンスの
参照カウンタを、自分の動作完了まで保持するために増分していることが
ありますので、IQI_Release()はISHELL_CreateInstance()/IQI_AddRef()
を呼び出した回数だけ呼び出し、実際にインスタンスがリリースされたかは
確認しないで下さい。
と、中の人みたいに言って見るw
参照カウンタが2増えたり、逆に増加・減少しないやつって、結構あるよ。
0303デフォルトの名無しさん
2010/02/17(水) 23:40:01ユーザーは普通気にしなくていい、というか見るべきではない変数。
リソースリーク検出された時でもRelease回数足りてるかチェックするだけで
参照カウントが0になったかどうかは見ない。
0304デフォルトの名無しさん
2010/02/18(木) 12:19:57とは言え 〜_AddRef やら 〜_Releaseやらの戻り値で普通に返ってくるぞ。
0305デフォルトの名無しさん
2010/02/18(木) 13:42:250306デフォルトの名無しさん
2010/02/18(木) 14:10:01毎日 おもしろい イェイ イェイ
はちみつきんかんのど飴♪
0307デフォルトの名無しさん
2010/02/18(木) 20:08:44Release は 0 を返したあとの Release が未定義動作なだけで、他はどんな値を返してもよかったはず。
だから、
uint32 AddRef() { return 1; }
uint32 Release() { return 2; }
とかいう実装にするのも COM ではあり(実際よく使われてる)。
BREW で正しいのかどうかは知らない。
0308デフォルトの名無しさん
2010/02/18(木) 22:16:410309デフォルトの名無しさん
2010/02/18(木) 23:13:15まあリファレンスカウントは見ないにこしたことはない
0310デフォルトの名無しさん
2010/02/18(木) 23:23:48C言語は知ってるんだけど…
0311デフォルトの名無しさん
2010/02/18(木) 23:56:580312デフォルトの名無しさん
2010/02/19(金) 00:00:42話はそれからだ
0313デフォルトの名無しさん
2010/02/20(土) 06:42:07http://www.s-cradle.com/developer/index.html
http://www.brewjapan.com/
http://brew.qualcomm.com/brew/ja/
この辺りを読むといいよ。
0314デフォルトの名無しさん
2010/02/20(土) 12:42:530315デフォルトの名無しさん
2010/02/20(土) 12:53:320316デフォルトの名無しさん
2010/02/20(土) 16:42:46A.無理です。作成に必要なSDKをダウンロードする事すら一般人は出来ないようになっています。
Q.個人的に作成したBREWアプリのボクの携帯電話に入れたいです><
A.無理です。一般人が個人的に作成したアプリは携帯電話に移すことは出来ません。
Q.ボクもBREWでアプリを作って配信したいです><
A.無理です。KDDIは企業にのみBREW配信を許しており、個人での配信は不可能です。
Q.BREWアプリを扱う企業に入れて欲しいです><
A.無理です。今後BREWが発展する見込みは無く衰退するだけです。
今後BREW開発を行う人員は全て経験者で埋まっています。
0317デフォルトの名無しさん
2010/02/20(土) 21:26:440318デフォルトの名無しさん
2010/02/20(土) 22:39:25カメラ付き携帯にしろ、パケ定額にしろ、
他所で評価されたサービスをそのままパクって来たわけだが、
それが携帯端末自体に及んでしまったから仕方ないと言えば仕方ないが。
0319デフォルトの名無しさん
2010/02/21(日) 02:29:170320デフォルトの名無しさん
2010/02/22(月) 22:48:300321デフォルトの名無しさん
2010/02/23(火) 09:15:50嘘です><
0322デフォルトの名無しさん
2010/02/23(火) 21:52:320323デフォルトの名無しさん
2010/02/23(火) 22:29:310324デフォルトの名無しさん
2010/02/23(火) 22:53:300325デフォルトの名無しさん
2010/02/23(火) 23:20:15できるもんならやってみろ
0326デフォルトの名無しさん
2010/02/24(水) 01:09:07馬鹿丸出しだよ。
0327デフォルトの名無しさん
2010/02/24(水) 14:40:53シミュレータでしか動かせないからあまり意味はないと思うが、
とりあえず何か別のものと勘違いしてないか
0328デフォルトの名無しさん
2010/02/24(水) 21:37:10とりあえず何か別のものと勘違いしてないか
0329デフォルトの名無しさん
2010/02/25(木) 00:55:470330デフォルトの名無しさん
2010/02/25(木) 05:32:024.0は登録だけでは落とせなかった。
まぁ、仕事でだから依頼元に頼んでもらった。
0331デフォルトの名無しさん
2010/02/25(木) 21:34:26だからゲーム屋ってやなんだよ。だらしねーんだよ、仕事が。
0332デフォルトの名無しさん
2010/02/25(木) 22:22:26あったらオワットル
0333デフォルトの名無しさん
2010/02/26(金) 00:27:16IT系全般がコスト意識も糞も無い状況だったでござる。
0334デフォルトの名無しさん
2010/02/26(金) 11:44:330335デフォルトの名無しさん
2010/02/26(金) 22:37:08いまどきBREWなんてやってる人は殆ど居ないんだから。
0336デフォルトの名無しさん
2010/03/02(火) 21:05:000337デフォルトの名無しさん
2010/03/07(日) 15:33:124.0Brewシミュレータで特定の機種のシミュレートは可能でしょうか。
たとえばCA001の画面サイズなどをシミュレートしたければ
どうすればいいのでしょうか。
せめて画面サイズを現行機種の様に大きくするにはどうしたらいいのでしょうか?
よろしくお願いします。
0338デフォルトの名無しさん
2010/03/07(日) 16:32:32スピスにおいてあるじゃなかったか?
0339デフォルトの名無しさん
2010/03/08(月) 00:26:320340デフォルトの名無しさん
2010/03/08(月) 00:43:49スピセだろ?
0341デフォルトの名無しさん
2010/03/16(火) 02:02:36だからゲームプログラマってやなんだよ…
0342デフォルトの名無しさん
2010/03/16(火) 21:36:580343デフォルトの名無しさん
2010/03/20(土) 22:53:01ほんと、あいつらとはかかわりたくない。
0344デフォルトの名無しさん
2010/03/20(土) 23:16:17でも、プログラマーに人格障害者が多いのはかなり鉄板w
0345デフォルトの名無しさん
2010/03/20(土) 23:18:140346デフォルトの名無しさん
2010/03/21(日) 05:47:250347デフォルトの名無しさん
2010/03/21(日) 11:59:030348デフォルトの名無しさん
2010/03/21(日) 18:06:020349デフォルトの名無しさん
2010/03/21(日) 21:15:31奴隷同士を戦わせる事に成功したから
日本のITはぎじゅちゅしゃを安値で使役出来たんだけどなw
0350デフォルトの名無しさん
2010/03/22(月) 19:42:350351デフォルトの名無しさん
2010/03/31(水) 18:26:13・elf2mod使用
・gnude(GCC3.3.1 )
・BREW4.0
・機種「CA001」
・グローバル変数あり
仕事でmod圧縮が必要になったので
上の条件で圧縮を行ってみた所
1回目はほぼOK(たまに起動せず落ちる)
2回目以降はNG(こっちは絶対落ちます)
つまり、modとmod.binを新しく入れ直すと1回だけ起動する
という状況になったのですがこういう物なのでしょうか?
以前、グローバル変数を使用していると駄目という書き込みは見ましたが
そこが問題なのであれば一度も起動できないのでは?と思うのですが・・・
知ってる方いらっしゃいましたらお教えて下さい><
0352デフォルトの名無しさん
2010/04/01(木) 14:51:31たまたま転送直後はグローバル変数の使用領域と
偶然使えるヒープ領域が一致してただけでしょ。
OS側だってヒープの確保、開放をしてるんだし毎度同じと思う方がおかしい。
RVCTの方で圧縮後も動くのは、
グローバル変数が使用するヒープ領域を初期化する処理が、
圧縮後も上手く動くから。
GCCの方はその辺すっ飛ばしちゃうのが問題なんだけど、
このあたり対応する手段を検討してるあいだにRVCT買う事になって
その後はもう調べてない。
0353デフォルトの名無しさん
2010/04/01(木) 22:10:40回答してくれるのはうれしいけど、質問も理解できない方は無理に答えていただかなくても結構です
0354デフォルトの名無しさん
2010/04/02(金) 05:54:24そうじゃないなら、353が質問に答えてくれよと。ちなみに俺は分からん。
0355デフォルトの名無しさん
2010/04/02(金) 16:22:30異常性を指摘したら質問の理解不足と指摘されたでござるの巻。
0356デフォルトの名無しさん
2010/04/03(土) 02:18:460357デフォルトの名無しさん
2010/04/06(火) 03:26:20原因は他にあるが353の態度見たら教える義理もあるまい
0358デフォルトの名無しさん
2010/04/06(火) 16:49:540359デフォルトの名無しさん
2010/04/11(日) 14:07:410360デフォルトの名無しさん
2010/04/15(木) 14:32:19端末Aだと_SetMediaData()で成功しても、_Playで失敗し続ける。
端末Bだと再生は問題ないが、停止で端末リセットだったりする。
これタイマー回してIMediaのご様子伺いながら1個ずつ実行するようしないとダメかな・・?
少なくとも使用した端末の仕様書には、同期処理のAPIしか使ってないんだが。
0361デフォルトの名無しさん
2010/04/16(金) 12:38:29AEEApplet_New()で登録したPFNFREEAPPDATA型の終了処理関数が、
二回以上呼ばれることはありうるのでしょうか? もしあるので
あれば、その条件を教えていただけないでしょうか?(例えば
ISHELL_CloseApplet()を複数回呼ぶとその回数分終了処理関数が
呼ばれてしまうとか???)
その終了処理関数を自分で直接呼びだすコードは一切書いておらず、
AEEApplet_New()に渡しているだけなのですが、BREW Loggerのログを
見ていると、どうも終了処理関数が二回呼ばれる場合があるみたい
なのです。
よろしくお願いします!
0362デフォルトの名無しさん
2010/04/16(金) 14:43:23自分は全てRELEASEIF()でメモリの解放をしているから、
呼ばれていたとしても気づかないけど。
EVT_APP_STOPにTRUE返してる?
あと、ISHELL_CloseApplet()を複数回呼び出しても関係ないはず。
ちょっと、コーディング・センスを疑うけど。
0363デフォルトの名無しさん
2010/04/16(金) 22:55:07あとはわかるな
0364デフォルトの名無しさん
2010/04/18(日) 01:26:26現在いくつか問題を抱えており、どなたかご教授いただけないでしょうか?
1.
BREW3.1のauアプリでメモリの最大使用制限というのは
MALLOC()以外で取得されたメモリ
IDISPLAY_CreateDIBitmap()、ISHELL_LoadBitmap()等で
作成されたものも含まれるのでしょうか?
2.
反転画像を転送する際に
画像ロード(8bitパレット)->DDBに転送(16bit)->
ITRANSFORM_TransformBltSimple()->画面に表示(16bit)
という手順で行っているのですが、せっかく画像を8bitパレットで作っても
転送する前に16bit化しなければならず、倍のサイズをつかってしまい
メモリ容量が厳しいことになっています。保持しておく画像は8bitパレットのままで
うまく反転画像を表示させたいのですが、他のやり方を知っている方がいましたら
教えていただきたいです。(そもそも、間違っている場合はご指摘を・・・)
ワークバッファを持ち、直前に16bit化を行ってみたのですが
処理に時間がかかってしまい使えませんでした。
いきなり出てきてすみませんが、ヨロシクお願いします。
0365デフォルトの名無しさん
2010/04/18(日) 01:45:16ホント、だらしないな。
0366デフォルトの名無しさん
2010/04/18(日) 11:05:49ま た ゲ ー ム か
■ このスレッドは過去ログ倉庫に格納されています