c_user--Dual-Ported Memory Manager

来源:互联网 发布:逍遥模拟器网络延迟 编辑:程序博客网 时间:2024/06/03 17:18

写在前面的话:初学Rtems,英语水平也有限,错误在所难免,请各位大牛不吝赐教,完善c_user的翻译。便于大家受益,在此谢过!

 

15.1引言

双端口内存管理器提供了...机制。该管理器提供了如下函数:

 rtems_port_create - Create a port
 rtems_port_ident - Get ID of a port
 rtems_port_delete - Delete a port
 rtems_port_external_to_internal - Convert external to internal address
 rtems_port_internal_to_external - Convert internal to external address

 

15.2背景

一个双端口内存区域(DPMA),是一个特殊处理器所有的一块连续的RAM。这块连续的RAM可以被系统内其他的处理器访问。拥有内存的处理器使用内部地址获得内存,其他处理器则使用外部地址。Rtems定义了一个端口作为内部和外部地址之间的映射。

 

在两种系统配置中,常常发现应用了双端口内存。第一种是紧耦合的多处理器计算机系统。这种系统中,双端口内存为所有连接上的(处理器)接点所共享,用于多处理器间的通信。第二种是带有外部智能控制器的计算机系统。 这些控制器使用DPMA进行在数据传输时,表现优异。

 

15.2操作

15.3.1创建一个端口

rtems_port_create函数,创建一个端口连接到一个用户自定义名字的DPMA。用户规定内部和外部的联系,描述刚刚创建的那个端口。Rtems从双端口内存控制块空闲列表中分配了一个双端口内存控制块,用来维持新创建的双端口内存DPMA。Rtems同时会产生一个双端口内存端口ID。这个号会返回给调用它的任务。Rtems不会初始化双端口内存区域,或者获取其中的内存。

 

(未完)

(转载请注明出处)

 

原创粉丝点击