微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于MicroBlaze软核的SOPC系统设计

基于MicroBlaze软核的SOPC系统设计

时间:04-01 来源:互联网 点击:

器来实现的,实现以后被传到链接器,生成链接脚本。

1.3.2 通信与同步

利用Shared Memory模块通信是处理器之间最常用的通信方式。其通信接口函数如下:

SHM_WRITEAREA();/*向Shared Memory中写数据*/

SHM_READAREA();/*从Shared Memory中读数据*/

利用Mailbox模块可以实现处理器之间的信息传递和中断。这在软件设计中主要体现在以下代码行中:

XMbox_WriteBloeking();/*向Mailbox中写数据*/

XMbox_ReadBlocking();/*从Mailbox中读数据*/

在软件应用设计中,两个处理器之间的同步是通过Mutex Locks实现的,它的状态有LOCK和UNLOCK之分。Mutex状态的操作主要体现在以下命令行中:

MLOCK(); /*使用之前LOCK*/

MUNLOCK();/*使用之后UNLOCK*/

软件的调试(debug)需要手工地选择处理器,两个处理器不可以同时调试。在XMD Console中的调试命令主要有:

debugconfig-reset_on_run disable/*下载时避免复位*/

dow executable.elf /*下载ELF文件*/run /*运行*/

2 实验结果

本设计采用调试模块分别对两个处理器进行调试,通过超级终端输出测试结果。

2.1 Mailbox的测试结果

通过Mailbox可以实现处理器之间的中断和通信。两处理器首先通过交换字符串“helo BOY”的形式汇合(rendezvous),以此来证明两个处理器的连接情况。在这里,每次发送的数据包为2 044字节,共发送了3个数据包,都能成功地发送。经验证,每次发送的信息量最大为4 096字节,可以重复发送。

2.2 Mutex的测试结果

通过Mutex可以实现两处理器的同步。当两个MicroBlaze处理器访问共享资源时,可以用Mutex核修改临界区域里共享资源的值。临界区域里的值是随着处理器的访问而更新的。在没有输出时处理器会锁定Mutex核,有输出时解锁Mutex核。同步使得控制台的输出结果正确可用,不会出现混乱的状态。

2.3 Shared Memory的测试结果

通过Shared Memory实现处理器之间的通信。处理器O首先向共享存储器中写入一个32位的数据并设置一个共享flag表明数据可用,等待处理器1读取这个数据。然后,处理器1从共享存储器中读取处理器0写入的数据并设置一个共享flag表明它已经读取了这个数据。双处理器会重复这样的过程,直到达到所设置的最大数目12。

结语

本文以MieroBlaze软核为基础,利用XPS作平台来设计双MieroBlaze处理器片上系统,此片上系统可以很好地实现两软核处理器间的通信和中断功能,该系统在Xilinx公司的XUPV5-LX110T开发板上得到实现,在超级终端中得到验证。本设计的优点是把处理器核之间的通信、中断、同步放在了同一系统中进行研究,深入研究了处理器之间的中断控制。下一步要做的工作是更多核的片上系统设计和操作系统移植。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top