您好,请教些问题,
使用双核,以前一直用ram做的正常工作,现在改了下cmd 搬到单机运行,结果两个cpu都不工作了,没有任何输出,感觉没有加载起来。自己折腾了好久,网上看了好些问题,也还是没明白为啥不工作了。板子本身应该没问题,以前单核的程序,可以standalone运行。
疑惑一:
从一些帖子里看到<www.deyisupport.com/.../190597.aspx
“
看controlsuite里的双核例程,在cpu1的主函数里有InitSysCtrl(); cpu2的主函数里没有,是不是双核初始化就是这样,只需要在cpu1里进行一次初始化?
你说的对,就是在CPU1初始化一下系统时钟,flash等就行了。CPU2无需配置。
”
另外从这个贴里也看到
<www.deyisupport.com/.../311014.aspx
"大哥,你好,我在你的指示下将blinky双核的程序做了化简,只在cpu1中写了IPCBootCPU2(C1C2_BROM_BOOTMODE_BOOT_FROM_FLASH);
将cpu2中的
extern Uint16 RamfuncsLoadStart;
extern Uint16 RamfuncsLoadSize;
extern Uint16 RamfuncsRunStart;
memcpy(&RamfuncsRunStart, &RamfuncsLoadStart, (size_t)&RamfuncsLoadSize);
都删除了 ,load 完之后 掉电 再 上电 发现两个小灯确实按程序的设定进行亮灭了,
"
InitSysCtrl() V140版本里这个函数里含有memcpy() 和 InitFlash(), (另外已经设置了ifdefCPU1 配置clk 对cpu2 也不影响)。所以我的问题是在 cpu2里 不需要memcpy()和 InitFlash()吗?
按道理两个cpu是独立的flash,cpu2应该也还要把代码搬运代码到ram吧,如果为了加快速度。
疑惑二:
参考例程在自己的板子上做了双核的程序,使用ram和flash 设置可以,但用standalone后,断电开电运行,两个cpu都不work了。在cpu2里, 我加了 InitSysCtrl() 和 一些函数的加载ram设置 #pragma CODE_SECTION(critical funs xxx, "ramfuncs"); 请问,有什么可能原因呢?
疑惑三:
当出现standalone不工作后,怎么才能知道哪里出问题,有哪些调试手段可以看到cpu此时是卡在哪里了,还是根本没有boot起来?
非常感谢!