引用 50 楼 paul_chao 的回复:
1. 这不试试就知了, ARM 在 IRQ exception 发生时固定跳至 0x00000018 处执行, 有开 MMU 就是 VA=0x00000018 处, 没开 MMU 时就是 PA=0x00000018 处, 所以有没有开 MMU, 都必须放在 0x00000018 处, 只是该位址是 VA 还是 PA 而已.
2. 如同 18 楼的 assembly code, 其将 VA=0x00000000 map to PA=0x30000000.
3. LZ 一直不将 eboot.bib & OEMAddressTable post 出来, 所以无法回答, 请 LZ 自己算吧.
4. 45 楼 的 OEM…
晕。为什么我的还是不行呢?
eboot.bib:
MEMORY
; Name Start Size Type
; ------- -------- -------- ----
ARGS 8C020800 00000800 RESERVED
BINFS 8C021000 00005000 RESERVED
RAM 8C026000 00008000 RAM
STACK 8C02E000 00002000 RESERVED
EBOOT 8C038000 00080000 RAMIMAGE
; Area used to cache nk.bin while programming flash
FLSCACHE 8C200000 01400000 RESERVED
DISPLAY 8C100000 00100000 RESERVED
CONFIG
COMPRESSION=OFF
PROFILE=OFF
KERNELFIXUPS=ON
; ROMOFFSET=25FC8000
SRE=ON
ROMSTART=8C038000
ROMWIDTH=32
ROMSIZE=80000
g_oalAddressTable
DCD 0x82000000, 0x08000000, 32 ; 32 MB SROM(SRAM/ROM) BANK 1
DCD 0x84000000, 0x10000000, 32 ; nGCS2: PCMCIA/PCCARD BANK 2
DCD 0x86000000, 0x18000000, 32 ; 32 MB SROM(SRAM/ROM) BANK 3
DCD 0x88000000, 0x20000000, 32 ; 32 MB SROM(SRAM/ROM) BANK 4
DCD 0x8A000000, 0x28000000, 32 ; 32 MB SROM(SRAM/ROM) BANK 5
DCD 0x8C000000, 0x30000000, 64 ; 64 MB DRAM BANK 6
DCD 0x90800000, 0x48000000, 1 ; Memory control register
DCD 0x90900000, 0x49000000, 1 ; USB Host register
DCD 0x90A00000, 0x4A000000, 1 ; Interrupt Control register
DCD 0x90B00000, 0x4B000000, 1 ; DMA control register
DCD 0x90C00000, 0x4C000000, 1 ; Clock & Power register
DCD 0x90D00000, 0x4D000000, 1 ; LCD control register
DCD 0x90E00000, 0x4E000000, 1 ; NAND flash control register
DCD 0x90F00000, 0x4F000000, 1 ; Camera control register
DCD 0x91000000, 0x50000000, 1 ; UART control register
DCD 0x91100000, 0x51000000, 1 ; PWM timer register
DCD 0x91200000, 0x52000000, 1 ; USB device register
DCD 0x91300000, 0x53000000, 1 ; Watchdog Timer register
DCD 0x91400000, 0x54000000, 1 ; IIC control register
DCD 0x91500000, 0x55000000, 1 ; IIS control register
DCD 0x91600000, 0x56000000, 1 ; I/O Port register
DCD 0x91700000, 0x57000000, 1 ; RTC control register
DCD 0x91800000, 0x58000000, 1 ; A/D convert register
DCD 0x91900000, 0x59000000, 1 ; SPI register
DCD 0x91A00000, 0x5A000000, 1 ; SD Interface register
DCD 0x92000000, 0x00000000, 32 ; 32 MB SROM(SRAM/ROM) BANK 0
DCD 0x00000000, 0x00000000, 0 ; end of table
pISR用0x8C000000+0x18和0x30000000+0x18都不行……
我在IsrUsbd()输出调试信息,进入EBOOT菜单,接入USB线,串口没有输出任何东西,然后EBOOT就挂掉了,按任何键都没有反应,程序都不知道跳到哪里去了……