由于某些
ARM 内核的设计限制,部分 ARM 内核的某些 cache 操作、某些
CP15 寄存器读写操作,不能通过 JTAG 链完成操作。这种情况下, FoxICE 仿真器
会下载一段完成相应操作的指令序列到目标板的 RAM 中,并运行。下载地址即为用户所指定的“ CP15 Access Address
”。
FoxICE 仿真器对这块 RAM 的要求是:
长度至少 64
字节
可读写
应用程序不能使用这块 RAM
RDI 驱动缺省使用从 0x50 开始的
64 字节 RAM
如果调试以下这些
ARM 内核, Cache 已经打开,或调试器需要读写 CP15 寄存器,必须指定合理的“ CP15 Access
Address ”:
CPU 类型
|
Cache
已经打开 |
读写 CP15
寄存器 |
ARM920T |
√ |
√ |
ARM922T |
√ |
|
ARM925T |
|
√ |
ARM940T |
√ |
√ |
ARM946 |
√ |
√ |
ARM966 |
|
√ |
ARM968 |
|
√ |
一般目标板在上电后,
Flash 或 Boot ROM 是可以立即读写的;某些 ARM 内核的处理器,片内的 SRAM 也是可以立即读写的;但多数片外的
SRAM 、 SDRAM 等 RAM 则需要对相应的控制器进行初始化,然后才可正确读写。这些初始化操作,一般在 boot 代码中完成。
如果用户所调试的程序,将会在运行过程中打开
cache ,那么调试器连接目标板时,需要指定合适的“ CP15 Access Address ”。推荐用户指定连接目标板时,就已经可读写的
RAM ;如果无法满足,则可以指定在 cache 打开之前可用的 RAM ,即使这块 RAM 在连接时还未初始化。
|