Adam Tayloy玩转MicroZed系列59:Zynq与PicoBlaze第4章_第1页
Adam Tayloy玩转MicroZed系列59:Zynq与PicoBlaze第4章_第2页
Adam Tayloy玩转MicroZed系列59:Zynq与PicoBlaze第4章_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

AdamTayloy玩转MicroZed系列59:Zynq与PicoBlaze第4章在以前发布的玩转MicroZed系列博客中,我们建立了一个基于Zynq的系统,通过使用双端口RAMS和BRAM(块RAM)控制器将两个PicoBlaze处理器核连接到Zynq的PS部分,现在我们将学习一下怎样实现更新存储在双端口RAM中的PicoBlaze处理器的程序。首先在执行程序的控制下,我们怎样实现自由的存储PicoBlaze程序包括软件应用程序然后将他们下载到CPU中执行。当我们定义Zynq系统时,一个关键点就是使用ZynqSoC’sPS部分的俩个EMIO端口控制PicoBlaze内核的复位输入信号。(我们要为每个PicoBlaze都提供一个复位输入来实现俩个内核的独立复位),当我们更新处理器的程序存储RAM的时候,两个复位管脚允许我们能够独立复位每一个PicoBlaze处理器模块。当处理器的程序存储空间处在一个不确定或者混合的状态时,这个处理器就不能够继续执行程序了。在一个实例化的处理器内更新PicoBlaze程序代码的基本算法如下:

1.为将要更新处理器声明复位管脚

2.通过从ZynqPS到BRAM控制器的写操作更新处理器的块RAM空间

3.一旦完成BRAM的写操作,取消处理器的复位,允许处理器重启并执行新的程序代码尽管上面的步骤很简单,但是首先我们必须以正确的格式生成新的PicoBlaze程序,并且也能够包含到ZynqSoCPS部分的ARMCortex-A9MPCore处理器的程序代码中。解决这个问题的最简单方式就是将新程序以数组的形式写入到ARM处理器的C程序代码中。为了实现这个功能,我们必须处理一下由PicoBlaze汇编器生成的hex格式的文件,我们可以手动处理但是对于大型程序就显得比较笨拙了,因此我编写了一个简单的TCL脚本,将hex格式的文件转化为C的头文件,这个头文件可以加入到你的编译环境中。(这个脚本和所有程序我已经上传到Github中了,会在本篇博客的结尾备注的)

准备好了正确格式的文件,并且包含到了ARMCortex-A9MPCore的程序当中,我们就可以轻松的读取这个数组内容,将它写入到合适的BRAM当中。因为我们使用的是32位的地址,每四个字节都是独立可编址的,并且每四个字节都是一个独立的地址空间。例如第一个32位的地址是0,第二个地址是4,第三个地址是8,这样一直进行下去。我们可以使用下面这个函数将内容写入到BRAM当中:

XBram_WriteReg(PICO_0_BASE,ram_addr,test2[read_out]);我们可以使用for循环遍历整个数组,如下图所示:以我们以前创建的系统示例为基础,使用这些结构,我们就能够简单快速的编写一个简单的程序,允许我们更新任意一个PicoBlaze内核的程序存储空间,本博客的程序实现的功能是每个PicoBlaze处理器控制他们各自的LED灯,以或快或慢的频率闪烁。

当然这并不意味着在处理器执行期间我们能够下载新的镜像文件到PicoBlaze处理器中,如果要实现这样的功能,我们必须编写一个稍有不同的程序和TCL脚本,我们将在下一篇博客当中介绍。快要有60篇博客了,我觉得如果有一个GitHub存储空间将是一个非常好的想法,所以我已经创建了一个,地址是“/AT

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论