[過去ログ] ゲームボーイアドバンス(GBA)非公式開発 Part2 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
162(18): 2005/05/31(火)16:11 ID:llLI5kWl(1) AAS
memsetは使えてるっぽいけどsprintfは使えないのかな?DevkitAdvance
-nostdlib ってどういう意味だろ?
最適化は面倒だからパスしようかな、とりあえずの目標はクリアしたり・・・
170(1): 162 2005/06/02(木)15:39 ID:F8Q5wqFY(1/2) AAS
やっぱり最適化してます
プログラムをIRAMに置かない場合、thumb用でコンパイルしないといけないんだよな?
objdumpで逆アセンブルしてみたら4Byte間隔で0x0800****番地に配置されて
いるのはARM用にコンパイルされてるから?
#リンク時に -Ttext 0x08000000 としてます
コンパイル時の指定はどうすればthumbでコンパイルできるの?
-bかな?machineの指定はどうすればいいんだろう・・・
172: 162 2005/06/02(木)17:41 ID:F8Q5wqFY(2/2) AAS
ありがと>>171
いろいろ調べてみたけど、みんな気にしてないのかな?
たいてい指定無しでmakefileつくってる。-mthumb-interworkだけで
> ちなみにARMだろうかTHUMBだろうが動くんじゃないかな。
うん、いまのとこ何も指定しなくても(ってことはARMか)でも動いてる
いままではCのプログラムとしては最適化してきたけど
GBA用としてはまったく最適化してないの
省4
179: 162 2005/06/06(月)21:58 ID:PaMPnmfV(1/4) AAS
質問です
memcpyでローカル変数の配列データをVRAMへデータをセットしようとすると
上手くいく時となんか行かない時が規則的に現れるんですが
原因はなんだと思いますか?
現状は:
配列データは多分予想どおりのデータが入ってる。
#memcpyを使わないでforループで書き込むと上手くいってる
省2
180: 162 2005/06/06(月)22:32 ID:PaMPnmfV(2/4) AAS
追加:
memcpyの座標が1dot x方向に増えた座標へcopyすると上手くいく
#逆に上手くいってたものが上手く色を塗らなくなった
どう変かといえば、白が薄ピンク色になる
#オセロ盤で本来なら全部白いマスのはずが白いマスとピンクのマスが交互に並んでしまう
182(1): 162 2005/06/06(月)22:51 ID:PaMPnmfV(3/4) AAS
あ、もしかして書込み先が4Byte境界じゃないと上手く動かないのかな?
184: 162 2005/06/06(月)23:46 ID:PaMPnmfV(4/4) AAS
>>182 サンクス
ここのページの
外部リンク[html]:home.att.ne.jp
真ん中少し上の「メモリアクセス速度について」の
VRAMのwriteの書き込み制限(8bitでは×)のことかな?
こんな制限あったんだ、なるほど
wmemcpyを使えばいいんだろうか?
188(1): 162 2005/06/07(火)18:32 ID:ZI5uYn33(1/2) AAS
mallocを使うのってsbrkを移植するの?
newlibを移植すればいいのかな?このあたりのことはよくわからん
この辺に書いてあるかな?
C/C++による組み込みシステムプログラミング
外部リンク:www.amazon.co.jp
190(2): 162 2005/06/07(火)23:38 ID:ZI5uYn33(2/2) AAS
mallocって前もって準備しなくても使えるの?devkitadvance使ってます
PCでmallocの使い方はわかるけど、GBAの開発でそのまま使えるとは思わなかった
manでみるとsbrkのサポートが必要みたいだけどこれはどうなってるの?
使えるなら質問
mallocで確保されるメモリはIWRAM領域から確保されるの?
EWRAM領域?bssで指定された領域?グローバル変数との使い分けは大丈夫なの?
196(1): 162 2005/06/08(水)23:15 ID:aq/RdM9p(1) AAS
ヒントがあるかと思ってnewlibのコンパイルに挑戦
makeは出来たっぽいけどmake installが上手くいかん
でもlibc.aは出来たし(同じとは限らんが)、malloc等標準ライブラリのソースも
付いてたのはうれしい発見だな
#おかげでmemcpyが8bit毎にコピーしてるのが確かめられた
ふーん、libc.aって***.oをarで固めたものなんだ。
やっぱり組み込み側の知識が足りんなぁ
省3
206: 162 2005/06/13(月)00:15 ID:WeLHi+pU(1) AAS
チラシの裏:
newlibのmake,make install成功。
上手くいかなかった原因はdevkitadb/binがPATHの検索順で自分でコンパイルしたarm-elf-**より先にあったためと思われる
対処方法としてdevkitadb/binをPATHからはずしてbinutils,gcc,newlibを作成
ありがとう、みんな
207: 162 2005/06/20(月)10:45 ID:nuWkCFET(1/4) AAS
#mallocから逃げてるオイラ
memcpyの代わりにDMAを使ってローカル変数配列をVRAMに描くことで最適化できないかと思い
for(行数分){
// memcpy();
DMAmemcpy(); //中でDMAをつかってる
}
こんな感じでDMAをつかってmemcpyしたら速くなるかな?とおもって作ってみました。
省4
209: 162 2005/06/20(月)12:03 ID:nuWkCFET(2/4) AAS
>>208
さんくす
たぶん、「 表示期間中はDMAでVRAMへの転送は出来ない」これだろうなぁ
1番はエラーチェック入れてるし、3番は多分間違ってない、と思うし
描画タイミングなんて考えたこと無かった
う〜ん、イベントループで描画用イベントをつくり、描画はそちらにまとめないと駄目だなぁ・・・
211(1): 162 2005/06/20(月)13:29 ID:nuWkCFET(3/4) AAS
動かない、ってのは誤解させたか
正確に言えば、その部分の描画処理をしてくれない、かな
四角く塗りつぶす関数
for(y行分){ for(x幅){ VRAMへ書き込む } }
を
for(x幅){ローカル配列に書き込み}
for(y行分){ローカル配列をDMAmemcpyでVRAMへ}
省3
213(1): 162 2005/06/20(月)14:12 ID:nuWkCFET(4/4) AAS
>>212
それだ、やっと頭の中でつながった!サンクス
215: 162 2005/06/21(火)17:36 ID:2bu24OLk(1) AAS
一番の目標は、組み込み向け開発ノウハウの勉強
それも、単純なLEDだけの世界じゃなくて、ある程度GUIがある組み込み。
でもそれだけじゃ漠然としすぎてどこから手をつけたらいいか迷うので
今作ってるのはパズル。「数独」ってしってる?
これならグラフィックやシナリオで迷わなくていい。
次はマインスイーパかソリティアでもつくろうかなって思ってるところ
225: 162 [age] 2005/07/07(木)22:26 ID:IdWw8xni(1/2) AAS
一応動くようになりました。
ちゃんと動くかな?
質問に答えてもらったお礼です。
外部リンク[lzh]:up.isp.2ch.net
外部リンク[cgi]:up.isp.2ch.net
226: 162 [age] 2005/07/07(木)22:28 ID:IdWw8xni(2/2) AAS
操作方法は
・selectでメニュー
・Aでセルの数字が増える
・Bでセルクリア
・十字キーで移動
です
230(1): 162 [age] 2005/07/13(水)14:04 ID:QdmkZAfq(1) AAS
printfくらいは自作してもいいけど入力どうしようかな?
ケータイみたいな仮想キーを作ってそれで入力する、かなぁ
これなら12この仮想キー(ボタン?)で済む
「ホームランド」みたいな入力システム作れればいいんだろうけど、ムズカシイ・・・
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.036s