一、芯片数据手册
PIC32 单片机实现了两个地址空间:虚拟地址空间和物理地址空间。所有硬件资源(例如程序存储器、数据存储器和外设)都位于各自相关的物理地址范围内。虚拟地址专供 CPU 取指和执行指令使用。物理地址供外设 (例如不通过 CPU,独立访问存储器的 DMA 和闪存控制器)使用。
内核空间分为 4 个各为 512 MB 的地址段:KSEG0、 KSEG1、 KSEG2 和 KSEG3。仅内核模式应用程序可以访问内核存储空间。内核空间包括所有外设寄存器。因此,仅内核模式应用程序可以监视和操作外设。只有 KSEG0 和KSEG1 段指向真正的存储器资源。如 MIPS 文档所介绍,地址段 KSEG2 可供 EJTAG 探针调试器使用(请参见 EJTAG 规范)。
PIC32 仅使用 KSEG0 和 KSEG1 段。可通过 KSEG0 或 KSEG1
访问引导闪存存储器 (BFM)、程序闪存存储器 (PFM)、数据 RAM 存储器 (DRM)和外设SFR,其中外设 SFR 只能通过 KSEG1 访问。
KSEG1存储器地址段是不可高速缓存的,而KSEG0和 USEG/KUSEG 是可高速缓存的。
KSEG0 和 KSEG1 段总是转换为物理地址 0x0。通过这种转换安排, CPU 可以通过两个独立的虚拟地址访问相同的物理地址:一个是通过 KSEG0,另一个是通过 KSEG1。因此,应用程序可以选择以高速缓存或非高速缓存的方式执行同一段代码。更多详细信息,请参见第 4 章“预取高速缓存模块”(DS60001119)。只有通过 KSEG1 段才可访问片上外设 (非高速缓存访问)。
|