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

本文档介绍了一个ZEDBOARD开发板上的双核启动实验过程。实验目标为CPU0通过串口输出字符串,同时CPU1独立控制LED闪烁。文章详细拆解了FSBL编写、CPU0应用程序开发及CPU1应用程序的编写流程。

 

全兼容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  

 

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值