VxWorks中的地址映射_第1页
VxWorks中的地址映射_第2页
VxWorks中的地址映射_第3页
VxWorks中的地址映射_第4页
VxWorks中的地址映射_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VxWorks中的地址映射

作者Email:

在运用嵌入式系统VxWorks和MPC860进行通信系统设计开发时,会遇到一个映射地址不能访问的问题。

缺省情况下,VxWorks系统已经进行了如下地址的映射

memory地址、bcsr地址、PC_BASE_ADRS地址、InternalMemory地址、rom地址等,但是当你的硬件开发中要加上别的外设时,如,对这些外设的访问也是通过地址形式进行读写,如果你没有加相应的地址映射,那么是无法访问这些外设的。

和VxWorks缺省地址映射类似,你也可以进行相应的地址映射。

如下是地址映射原理及实现

1、地址映射结构

在Tornado“target“h“文件中

typedefstructphys_mem_desc

{

void*virtualAddr;

void*physicalAddr;

UINTlen;

UINTinitialStateMask;/*maskparametertovmStateSet*/

UINTinitialState;/*stateparametertovmStateSet*/

}PHYS_MEM_DESC;

virtualAddr:你要映射的虚拟地址

physicalAddr:硬件设计时定义的实际物理地址

len;要进行映射的地址长度

initialStateMask:可以初始化的地址状态:

有如下状态:

#defineVM_STATE_MASK_VALID0x03

#defineVM_STATE_MASK_WRITABLE0x0c

#defineVM_STATE_MASK_CACHEABLE0x30

#defineVM_STATE_MASK_MEM_COHERENCY0x40

#defineVM_STATE_MASK_GUARDED0x80

不同的CPU芯片类型还有其特殊状态

initialState:实际初始化的地址状态:

有如下状态:

#defineVM_STATE_VALID0x01

#defineVM_STATE_VALID_NOT0x00

#defineVM_STATE_WRITABLE0x04

#defineVM_STATE_WRITABLE_NOT0x00

#defineVM_STATE_CACHEABLE0x10

#defineVM_STATE_CACHEABLE_NOT0x00

同样不同的CPU芯片类型还有其特殊状态

2、初始化结构

在Tornado“target“config“ads860“文件中:

PHYS_MEM_DESCsysPhysMemDesc[]=

{

{

(void*)LOCAL_MEM_LOCAL_ADRS,

(void*)LOCAL_MEM_LOCAL_ADRS,

LOCAL_MEM_SIZE,

VM_STATE_MASK_VALID|VM_STATE_MASK_WRITABLE|

VM_STATE_MASK_CACHEABLE,

VM_STATE_VALID|VM_STATE_WRITABLE|VM_STATE_CACHEABLE

},

{

(void*)BCSR0,

(void*)BCSR0,

0x00001000,/*4k-BoardControlandStatus*/

VM_STATE_MASK_VALID|VM_STATE_MASK_WRITABLE|

VM_STATE_MASK_CACHEABLE|VM_STATE_MASK_GUARDED,

VM_STATE_VALID|VM_STATE_WRITABLE|VM_STATE_CACHEABLE_NOT|

VM_STATE_GUARDED

},

……

{

(void*)INTERNAL_MEM_MAP_ADDR,

(void*)INTERNAL_MEM_MAP_ADDR,

INTERNAL_MEM_MAP_SIZE,/*64k-InternalMemoryMap*/

VM_STATE_MASK_VALID|VM_STATE_MASK_WRITABLE|

VM_STATE_MASK_CACHEABLE|VM_STATE_MASK_GUARDED,

VM_STATE_VALID|VM_STATE_WRITABLE|VM_STATE_CACHEABLE_NOT|

VM_STATE_GUARDED

},

{

(void*)ROM_BASE_ADRS,

(void*)ROM_BASE_ADRS,

ROM_SIZE,/*Flachmemory*/

VM_STATE_MASK_VALID|VM_STATE_MASK_WRITABLE|

VM_STATE_MASK_CACHEABLE,

VM_S

TATE_VALID|VM_STATE_WRITABLE|VM_STATE_CACHEABLE_NOT

}

};

上面结构中是缺省地址映射。

3、地址初始化

在Tornado“target“src“config“文件中

通过函数usrMmuInit使地址映射生效

4、实现映射

如你定义flash地址为0x04000000开始的8Mbyte地址,则可以如下进行地址映射

{

(void*)0x04000000,

(void*)0x04000000,

0x00800000,/*8m-Flashwindow1*/

VM_STATE_MASK_VALID|VM_STATE_MASK_WRITABLE,

VM_STATE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论