[組語] GBA memory map

看板b95902HW作者時間16年前 (2007/12/10 16:05), 編輯推噓1(106)
留言7則, 2人參與, 最新討論串1/1
在HAM的安裝目錄/docs/korth_gbatek.html 這份文件中,有一節是關於GBA架構的memory map 其中一段 General Internal Memory 0000:0000-0000:3FFF BIOS - System ROM (16 KBytes) 0000:4000-01FF:FFFF Not used 0200:0000-0203:FFFF WRAM - On-board Work RAM (256 KBytes) 2 Wait 0204:0000-02FF:FFFF Not used 0300:0000-0300:7FFF WRAM - In-chip Work RAM (32 KBytes) 0300:8000-03FF:FFFF Not used 0400:0000-0400:03FE I/O Registers 0400:0400-04FF:FFFF Not used 在作業三中,真正能自由使用的記憶體 只有0x2012C08 ~ 0x203FFFF 0x300000 ~ 0x3007FFF 這兩塊而已 剛剛發現有同學因為改動了0x0000000~0x00003FFFF這塊保留給BIOS使用的記憶體 造成debug mode會跑出正確結果,而模擬器卻會錯誤的情形 這是由於該debugger(GDB+Insight)並不會去檢查你的記憶體運用是否符合GBA的規則 但是模擬器是照著真實的硬體去模擬的 因為GBA並沒有一個作業系統來作memory management 使用到不該用的記憶體位址可能造成不可預期的結果 如上例中.改動到BIOS memory會造成最後圖片無法顯示之類 因此請到目前仍沒有Accept的同學,注意看看是不是用到了非法記憶體的關係 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.91.5

12/12 01:15, , 1F
那請問助教如果想在 myfilter.s 中開一個比較大的陣列
12/12 01:15, 1F

12/12 01:17, , 2F
來存東西,是不是就要對應map上可以自由使用的記憶體區
12/12 01:17, 2F

12/12 01:18, , 3F
塊,然後自行設定陣列起始位置到空的地方? 還是要用什
12/12 01:18, 3F

12/12 01:19, , 4F
麼其他的作法?
12/12 01:19, 4F

12/12 01:19, , 5F
謝謝助教(...呃,應該是助教吧 "^^a)
12/12 01:19, 5F

12/13 00:29, , 6F
在myfilter.s裡面用derective宣告的話,不用擔心這個問題
12/13 00:29, 6F

12/13 00:30, , 7F
除非你開太大了..
12/13 00:30, 7F
文章代碼(AID): #17NFCttN (b95902HW)