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()唤醒。