新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于Nios II软核的多核处理器系统的设计与实现

基于Nios II软核的多核处理器系统的设计与实现

——
作者:孔德春 施慧彬时间:2014-04-24来源:电子产品世界收藏

  重要的是,在系统中Mutex本身无法从物理上防止共享资源被处理器同时访问,而提供此功能是我们所编写的软件程序。在获得相关共享资源前,软件总是询问并获得Mutex核。

本文引用地址:http://www.eepw.com.cn/article/245929.htm

  2.2 软件设计

  本设计中,两个处理器的软件程序都拥有自己独有的一段存储空间,这些存储空间都位于同一个物理存储设备SDRAM上,如图3所示,第一个处理器使用SDRAM中0x0到0x1FFFF之间的地址空间,第二个处理器使用0x20000到0x2FFFF之间的地址空间,并且以异常地址作为边界。

  异常地址是程序加载的地址,决定着哪个处理器的软件程序可以占据空间基地址运行。 IDE负责链接处理器的软件设计并映射到存储器中,并为每个处理器提供其独有的段空间来运行软件设计。对于每个处理器来说,有五个主要的代码段需要映射到存储器的固定地址中:.text,存放实际执行的代码;.rodata,存放实际执行代码中所使用的常量;.rwdata,存放读写变量和指针;Heap,自动分配的空间;Stack,存放函数调用的参数和其他临时的数据。

  同时在双处理器系统中,每个处理器都必须从自己的启动存储空间来启动。启动存储器和程序存储器一样也能被分区,只需在存储器上设置每个处理器的复位地址就可以。

  3 系统软硬件实现

  SopcBuilder是Altera公司提供的一款图形化系统设计实现工具,内嵌于Quartus II软件中。利用SopcBuilder实现的系统如图4所示,包括了两个软核处理器以及其他内外设,连接关系表现了系统组件如何通过Avalon总线构成一个可以工作的系统。系统配置对每个系统组件分配了基地址,以实现Avalon总线对组件的访问。

  对于利用SopcBuilder生成的系统,通过JTAG接口下载配置到Altera的开发板上,然后在 IDE中调用HAL API函数开发C 语言应用程序就可以在开发板上运行,以此来验证所设计的多核系统是否能够正确运行。本文利用Altera公司提供的例程hello_world_multi,再将其修改后,各个处理器通过交替获得Mutex的所有权,执行相同的程序,并将处理数据存储在片上共享存储器上,最终通过CPU_1的JTAG_Uart打印到Nios II IDE终端。图5为验证程序的运行结果在Nios II IDE输出窗口的打印,可以看出,两个核都能通过Mutex获得外设的控制权,表明系统配置成功且能正确运行。

  结语

  本文根据SOPC技术利用Quartus的SopcBuilder构建硬件平台,利用Nios II IDE运行软件程序,实验结果表明:软硬件设计正确,系统能正常运行。同时,本设计为以上的多核系统的设计提供了理论基础。

存储器相关文章:存储器原理



上一页 1 2 下一页

评论


相关推荐

技术专区

关闭