AMP模式与单核模式的系统实现差异分析-参考xapp1078

1, 修改生成fsbl的image_mover.c等源文件,使fsbl一直load直到遇到load = 0xFFFFFFF0。还有其他相应的约定的行为规则,在bootGen相应实现。

2, 在vivado中执行批处理文件createBoot.bat,内部命令:bootgen -image bootimage.bif -o i BOOT.BIN -w on,注意其中bootgen的配置文件bootimage.bif,该文件的内容如下。其作用是:1,列出需要打包的文件,注意正确顺序。2,给bootloader文件打标签,用于PS_bl文件找到它。3,加入了[load = 0xFFFFFFF0] cpu1_bootvec.bin,遇到该行后,fsbl将停止继续load,并且返回执行第一个非bl和非bit程序,也就是u-boot.elf。

the_ROM_image:

{

       [bootloader] amp_fsbl.elf--------------------//fsbl文件

               download.bit-------------------//配置FPGA PL的比特文件

                    u-boot.elf--------------------//CPU core0的u-boot可执行文件

                    app_cpu1.elf------------------//CPU core1的可执行文件

  [load = 0xFFFFFFF0] cpu1_bootvec.bin-----------//假二进制文件,用于停止继续Load,开始u-boot。

}                                                                              //该bin文件内仅含有四个字节:00FFFFFF

3, 如上1,2就生成了AMP的系统。将linux的应用app 拷贝到SD卡文件系统,在系统启动后即可挂载执行。

4, Cpu core1可以由中断信号或者sev()唤醒。

posted @ 2017-06-14 21:47  阿波里德  阅读(718)  评论(0编辑  收藏  举报