zynq7 双核处理器的最简单例子

 

全兼容ZEDBOARD 开发板子    SYSCLK.TAOBAO.COM 

今天终于有时间做这个事情。

首先从官方下载XAPP1079看看。

官方的X1079是基于XPS和SDK。并且也牵扯到了PL部分。

我们循序渐进,只实现两个处理器分别跑,没有联系,没有通讯和对话。

实验就先实现CPU0通过串口输出字符串,而CPU1则独立控制MIO7的LED进行闪烁。

 

因为不牵扯PL部分的配置和逻辑编写了,我们接下来面临三大部分要处理:

 

1, 编写FSBL。这里的FSBL跟我们以往单处理器的FSBL没有多大差别,做了初始化处理器的工作,之后就拷贝文件,拷贝文件之后就运行用户程序。

2,编写CPU0的应用程序,这里注意CPU1是由CPU0启动,CPU1启动的时候的PC指针设置的地址再0XFFFFFFF0这个地址里,这个地址是OCM的最高地址的32BIT。

CPU0执行 *(unsigned int *)0xfffffff0 = CPU1_PC,设置CPU1启动地址之后就开始执行SEV汇编指令,激活CPU1开始执行。

3,CPU1需要执行的应用程序,也要编写一下,因为这里不涉及PL,不涉及中断,不涉及与CPU0的互斥和同步,所以写CPU1的应用程序很随意。

 

 

我们按步就班来进行操作:

STEP1: 编写FSBL。我们这里之前的视频22就是使用BOOTGEN将内核,以及RAMDISC都生成一个单独文件。那时候我们指定了文件存放在处理器存储器的物理地址,这里我们也,但是我们这里我们要搬移的是两个ELF文件,ELF文件本身就有目的地址的信息,FSBL也会根据这个目的地址进行搬运。我们唯一关心的是在两个ELF搬运完毕后,如何让FSBL停止搬运。看代码:

 

 

 

 

<继续进行中。。。。>

SYSCLK.TAOBAO.COM  

 

 

 

你可能感兴趣的:(FPGA,ZYNQ7,OV7670,VERILOG,代码仓库,总结和计划,ZYNQ7)