完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
Hi 各位好
最近由于项目刚接触C6678多核DSP,论坛上看了许多资料。但是实践过程中遇到一些问题,想请教下各位专家。 1. 关于_c_int00入口的固定。为了使多核启动起来,需要在0核程序写各个核的入口地址到magic addr,所以必须要知道C入口的地址。而_c_int00_的固定应该是要更改cmd文件吧?而我用的是SYS/BIOS。我发现在debug目录下面有一个link.cmd,而这个文件有说明是不要修改的。意思是我得自己新建一个cmd文件?我有了解到在Tools->RTSC Tools->Platform->new/Edit可以更改,但是我new了,在external memory下add了一个,但是也没发现在哪里(*.map/link.cmd)有什么变化。 2. 关于cmd文件的编写。哪里有关于cmd文件编写的文档?用BIOS和不用是有不同的吧?cfg文件又要怎么更改呢? 新手,要学的还很多,希望各位不吝赐教。 yq |
|
相关推荐
6 个讨论
|
|
cmh9 发表于 2018-8-3 09:34 您好,感谢回复。 嗯嗯,在map文件确实是可以找到c_int00地址,但是我在想有没有必要固定这个地址呢?这样的话我就没必要一个一个填写各个核的入口地址了。我看下面这个LedTestCorex工程就是这样做的。 if (pform_status == Platform_EOK)[ /*write Boot Magic add of other cores and send IPC interrupt*/ pBootMagicAddCore0 = (int*)0x108FFFFC; //boot magic address (the last word) (*pBootMagicAddCore0)+= 0x10000000; // translate to global address for(i = 1;i < CORE_NUM_6670; i++) //write the other cores' boot magic address [ *(pBootMagicAddCore0+ (0x01000000*i)/4 ) = (*pBootMagicAddCore0) + 0x01000000 * i; ] IpcGr0 = (int*)0x02620240; /*warning:when running on no-boot mode,core0~core7 must all be connected to the target*/ for(i = 1;i < CORE_NUM_6670;i++)//core0 sent ipc interrupt to [ *(IpcGr0+i) = (*(IpcGr0+i)) | 0x00000001; ]] 还有一个问题就是在LedTestCorex工程中的cmd文件有这样一段 .myboot [ *.* ] > BOOT_CORE0 这段代码就是固定c_int00入口的吧。我试过了,这种写法是不能在BIOS里面用。 还有,我也参考了这篇帖子,http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/73810.aspx 我跟他的情况差不多吧。总之,我还想知道的就是:有必要固定C入口地址吗?how? 期待您的回复 yq |
|
|
|
|
|
taozhen 发表于 2018-8-3 09:44 我没有试过,但是应该可以固定这个地址,在cmd文件中强制把这个地址指定到一个固定的地址上去。 |
|
|
|
|
|
问题解决一段时间了,分享下我的处理过程。总觉得我的处理不对劲,或者根本就不应该是这样处理的,但多核确实还是起来了。还希望大家能够提出建议。
1.固定c_int00入口;其实照理来说确实是不需要固定的。【 一般做boot时,代码基本就基本固定了】,最后再找出c_int00入口,修改boot的c_int00入口。 参考这个帖子 http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/p/73810/252410.aspx 可是我经常要烧写进去看效果,稍微改动些地方有可能c_int00入口就变了,所以我还是选择了固定。我是这样固定的: 首先,我针对不同的核新建了platform。【下面是核0的,其他核只是L2SRAM不一样】 因为我不清楚像上面那个帖子一样如何用一个platform使得不同核的code/data/stack放到不同的空间。 然后,新建了cmd文件。【下面是核0的】 MEMORY [ CORE0 (RWX) : org = 0x10800000, len = 0xc0 ] SECTIONS [ .text:_c_int00 > CORE0 platform_lib > DDR3 ] 最后就可以使用这段代码固定入口了 #if EVM_6670_6678 //1->6678 0->6670 pBootMagicAddCore0 = (int*)0x1087FFFC; //boot magic address (the last word) #else pBootMagicAddCore0 = (int*)0x108FFFFC; #endif // (*pBootMagicAddCore0) += 0x10800000; // translate to global address (*pBootMagicAddCore0) = 0x10800000; for(i = 1; i < CORENUM; i++) //write the other cores' boot magic address [ *(pBootMagicAddCore0+ (0x01000000*i)/4 ) = (*pBootMagicAddCore0) + 0x01000000 * i; ] IpcGr0 = (int*)0x02620240; /*warning:when running on no-boot mode,core0~core7 must all be connected to the target*/ for(i = 1;i < 4;i++)//core0 sent ipc interrupt to [ *(IpcGr0+i) = (*(IpcGr0+i)) | 0x00000001; ] |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
709 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
619 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1080 浏览 1 评论
776 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
537 浏览 1 评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
189浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
147浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
19浏览 13评论
在使用3254进行录音的时候出现一个奇怪的现象,右声道有吱吱声,请教一下,是否是什么寄存器设置存在问题?
138浏览 13评论
TLV320芯片内部自带数字滤波功能,请问linein进来的模拟信号是否是先经过ADC的超采样?
132浏览 12评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-4 14:27 , Processed in 1.141317 second(s), Total 82, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号