当前位置:首页 > 嵌入式 > 嵌入式硬件

相关资料:

双MicroBlaze软核处理器的SOPC系统设计(一)

1.3 软件设计

1.3.1 存储器映像

为了保证每个处理器在执行软件部分时不发生冲突,必须对其存储器进行存储器映像。图2是存储器映像图。

图2 处理器的存储器映像图

从图2中可以看出,用户可以灵活地为两个ELF文件分配适当大小的存储器空间作为ELF文件的映射地址范围。由于boot(引导)存储器不可以共享,所以ELF文件的boot部分(。vectors*)被映射到私有存储器中,它可以实现MicroBlaze处理器随时调用,也可以引导ELF文件加载到DDR中。Heap和stack的范围表示ELF文件在DDR中映像的存储器大小。boot存储器的大小表示boot部分所能引导的DDR的范围。ELF文件的位置和输出链接脚本的位置可以根据用户的需求选择。每个可执行文件的存储器映像地址都是通过编译器来实现的,实现以后被传到链接器,生成链接脚本。

1.3.2 通信与同步

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

SHM_WRITEAREA();/*向Shared Memory中写数据*/SHM_READAREA(); /*从Shared Memory中读数据*/利用Mailbox模块可以实现处理器之间的信息传递和中断。这在软件设计中主要体现在以下代码行中:

XMbox_WriteBlocking();/*向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),以此来证明两个处理器的连接情况。在这里,每次发送的数据包为2044字节,共发送了3个数据包,都能成功地发送。经验证,每次发送的信息量最大为4096字节,可以重复发送。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭