链接矩阵,由16X128KB片段(slice)组成,共2MB。
每个SHAVE对其自己的slice访问时有更高的带宽和更低的功耗;slice12-15不与任何SHAVE配对,可用于其他用途。slice归属是一种很弱的概念,每个SHAVE都能以相同的花费访问CMX的其他slice。但是slice之间的路由资源是有限的,同时访问各自归属的slice更节省功耗。
两种配置:config0 for 硬件测试;config1 for应用开发。所有slice都是同样的配置。
防止SHAVE程序运行时阻塞。

MA2150使用DDR2 533MHz,理论带宽为4GB/s.(533MHz*64bits?)
独立读写128/64bit意味着片上带宽很少可能是限制因素。
见debugger documentation。
概括描述编译系统。编译系统提供了建立应用的主要方法,含配置和功能目标。主要功能在共用makefiles中已经完成,但是小的操作还是必要的。
需要注意的是SHAVE代码需要对每个工程分别编译,每个工程可以有一个或者多个SHAVE应用。SHAVE C源文件通过内部开发的工具moviCompile编译。
MDK编译系统包含一套可用的目标,以建立最终的执行文件。
目标按照各自的角色被分到不同文件。generic.mk,generalsettings.mk…等
每个应用程序的Makefile必须包含如下的共用定义(generic.mk)。并行处理系统结构
如果必要,直接在Makefile的末尾增加。
组件可以简单的通过在ComponentList变量中枚举进行包含。如果组件中有SHAVE代码需要在连接前包含到库中,可以通过说明进行操作:SHAVE_COMPONENTS=yes
开始添加代码时需要首先决定哪些应用程序(apps)是必要的。一旦apps被定义,对于每一个app,可能都需要从现存的例子中复制一套规则,比如从ShaveHelloWorld中复制。其中的一部分内容需要修改,可见此章说明。
不需要使用编译库和SHAVE组件的apps,需要遵循的规则;需要使用编译库和SHAVE组件的apps,需要遵循的规则。
一旦apps打包到各.mvlib文件中,这些apps就会放入核内并产生SHAVE库,如例子shXlib,shvXuniqlib。并且需要枚举这些mvlib到SHAVE_APP_LIBS变量内。
编译SHAVE库需要的规则都在通用makefiles内,用户只需要定义要用的SHAVE_APPS。
每个SHAVE应用可以映射到任意SHAVE或者多个SHAVES。一个SHAVE可以用于多个SHAVE应用。
使用绝对地址和独立符号防止apps到核内,需要使用shvXlib名称增加该apps给每个SHAVE。例如:
这个库用于将符号合并到一个并共享。当使用shvXuniqlib文件,一个额外的规则需要放置到文件内。
除了编译系统和提供配置选项,MDKmakefile结构也允许编译一些功能目标来简化开发。
显示帮助信息,包含剪短的目标描述
发生改变后编译目标
编译所有项并通过moviDebug在一个目标上运行。
…其他功能
讲述集成到MDK内的RTEMS,如何在Myriad2上开发RTEMS应用,如何定制和扩展RTEMS。
写RTMES应用和写普通MDK应用类似。
两个附加变量需要被设置到RTEMS应用中:MV_SOC_OS和RTEMS_BUILD_NAME。
MV_SOC_OS变量用于通知编译系统我们正在使用RTEMS。该变量默认设置为‘none’。对于RTEMS应用,变量值需要设置为‘rtems’。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-66399-2.html
那就让女性无偿服务呀