配合“动态加载CPU1程序”食用,AMP下应用
1.开发环境配置
参考教程:zynq 7000 AMP模式 双裸核CPU同时运行_leon_zeng0的博客-CSDN博客_cleanup_platform
1.1 工程配置
选择 Empty Application
加入AMP的一个交叉编译的宏定义 “ -DUSE_AMP=1 ” ,添加在末尾。
1.2 DDR空间分配
修改 lscript.ld 文件中的内容,Base Address 和 Size 要和设备树 中 dbox_ipc_dev_instance 保持一致。
Base Address :0x18000000
Size:0x07000000
1.3 bin配置
arm-none-eabi-objcopy -O binary cpu1_led1.elf cpu1_led1.bin
cpu1_led1.elf为工程名字
2 裸机程序
目的:获取到两个不同程序的bin文件,所以裸机程序可以使用一个工程。通过改变 .c 内容,重新编译获取到两个不同的bin文件。两段代码在同一个.c中,使用时把另外一个给注释掉即可。
#include "sleep.h"
#include "xil_io.h"
#include "xgpio.h"
XGpio axiGpio0;
int main(void)
{
int i = 0;
XGpio_Initialize(&axiGpio0, XPAR_GPIO_0_DEVICE_ID);
XGpio_SetDataDirection(&axiGpio0, 1, 0x0);
while(1){
XGpio_DiscreteWrite(&axiGpio0, 1, i);
i++;
i = i & 0x03;
sleep(1);
}
return 0;
}
//#include "sleep.h"
//#include "xil_io.h"
//#include "xgpio.h"
//
//XGpio axiGpio0;
//
//int main(void)
//{
// int i = 0;
// XGpio_Initialize(&axiGpio0, XPAR_GPIO_0_DEVICE_ID);
// XGpio_SetDataDirection(&axiGpio0, 1, 0x0);
//
// while(1){
// XGpio_DiscreteWrite(&axiGpio0, 1, 0x03);
// sleep(1);
// XGpio_DiscreteWrite(&axiGpio0, 1, 0x00);
// sleep(1);
// }
//
// return 0;
//}
分别将两个bin文件复制出来,依次命名为 ”cpu1_led1_num.bin“ 和 ”cpu1_led1_bilink.bin“