看了TI的SRIO Boot Example文档,版本1.3。
首先通过SRIO下载DDR初始化代码,完成DDR初始化。再通过SRIO下载Helloworld代码到DDR。
不理解的是core0 boot其他核时boot magic地址为何用write_boot_magic_number() 函数的地址,
按道理应该是_c_int00地址。否则未执行c运行时间初始化部分,而直接跳转到write_boot_magic_number()
程序能执行正确吗?另外Helloworld项目cmd文件所有内存段都指向DDR,多核时代码段可共享,但这里
堆栈段等也共享了?
另外网上有文章说
一旦辅助核被主核触发后,须向各自核的Boot Magic Address 写入数据0xbabeface替换各自的_C_int00。
是必需这样吗?原因?
Andy Yin1:
core0触发其他core是向其他core的magic address写入各自核的程序入口地址,即写入c_int00;堆栈不能共享,但是可以每个core的堆栈放在各自分配的私有DDR。