首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

E398 CPU ARM7 简介及编程 (3)

E398 CPU ARM7 简介及编程 (3)

MMU 虚拟(逻辑)地址和物理地址的映射实例

    Vxworks支持的ARM架构的处理器,一般是RAM的起始位置为0x0,而实际上ARM的物理地址0x0是ROM的起始地址,RAM在高位地址.这就需要系统在Boot过程中,执行MMU程序,重新映射RAM和ROM的地址.即RAM起始地址为0x0.

    MMU主要有ARM7中协处理器coprocessor 15控制,coporocessor主要控制:

片内的MMU

指令和数据缓存(IDC)

Write Buffer(WB)

MMU有两层页表(two-level page table)用来进行虚拟地址向物理地址转换,CP15定义16个寄存器,只有MRC和MCR指令才能对它们操作.

在VxWorks系统中,MMU表分成两部分:boot up table和final table.在文件ramAtHigh.h中定义.该表在文件romInit.s中初始化,语句为:

    BL _ramAtHigh_1(2)

   

MMU映射实例

       虚拟(逻辑)地址(VxWorks系统)                                 硬件物理地址

RAM 首地址 0x0000.0000
Low Address 0x0000.1000
High Address 0x0060.0000
ROM   0x0100.0000
 
 

 

其他的地址逻辑地址和物理地址映射地址不变
0x8000.0000 内部寄存器
..................
.................

相同的颜色映射对应的地址
 

 

 

 

 

 
ROM 0x0000.0000 VxWorks image和文件系统
RAM 首地址 0xC000.0000 存放LCD,MMU表等
0xC004.0000 中断向量表等
0xC004.1000 VxWorks运行位置
0xC064.0000 VxWorks从ROM解压后Copy的位置

其他的地址映射地址不变
0x8000.0000 内部寄存器
..............
..............
继承事业,薪火相传
返回列表