1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 一只耳朵怪 于 2018-6-19 15:17 编辑
你们好: 我在调试C6657 SPI BOOT 双核启动的时候遇到了一些问题,代码烧写到了NOR FLASH,core0 启动成功,core1没有启动,使用仿真器监控发现core0入口地址正确,core1的入口地址使用core0的程序写入了,也给了IPC中断,但是core1没有启动,我不知道怎么判断core1代码是否加载到了指定位置?两个核的程序使用的是一个工程编译的,L2的地址0x800000没有改变,能指导一下吗?先行谢过!下面是程序main函数代码,附近时使用工具链生成的双核.dat 文件 void main() [ platform_init_flags init_flags; platform_init_config init_config; int *pBootMagicAddCore0; int *IpcGr0; int *KICK0 = (int*)UPP_KICK0; int *KICK1 = (int*)UPP_KICK1; int coreId = 0; int i = 0; /* Set default values */ memset(&init_flags, 0, sizeof(platform_init_flags)); memset(&init_config, 0, sizeof(platform_init_config)); init_flags.pll = 1; init_flags.ddr = 1; init_flags.tcsl = 1; init_flags.phy = 1; init_flags.ecc = 1; init_config.pllm = 0; coreId = platform_get_coreid (); if(coreId == 0) [ if (platform_init(&init_flags, &init_config) != Platform_EOK) [ System_printf("Platform failed to initialize, errno = 0x%x n", platform_errno); ] else [ platform_uart_init(); platform_uart_set_baudrate(115200); if(Sock_init() < 0) [ printf("Sock_init failed.n"); ] pBootMagicAddCore0 = (int*)0x108FFFFC; (*pBootMagicAddCore0) += 0x10000000;// translate to global address for(i = 1;i < CORE_NUM_6657; i++)//write the other cores' boot magic address [ *(pBootMagicAddCore0+ (0x01000000*i)/4 ) = (*pBootMagicAddCore0) + 0x01000000 * i; ] *KICK0 = 0x83E70B13; *KICK1 = 0x95A4F1E0; platform_delay(500); 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_6657; i++)//core0 sent ipc interrupt to [ *(IpcGr0+i) = (*(IpcGr0+i)) | 0x00000001; ] test_uart(1); ] ] if(Buff_init() < 0) [ printf("Buff_init failed.n"); ] BIOS_start(); |
|
相关推荐
5个回答
|
|
做成启动文件的时候,core0和core1的cmd文件需要使用全局地址编写,不能再使用0x00800000地址,
core 0 用0x10800000, core 1用0x11800000 |
|
|
|
hdfsf 发表于 2018-6-19 01:16 确实是这样,多谢了!我想再问一下,使用NDK网络通信,最大数据包只能是3072吗?我仿真调试的时候可以最大传8192,但是程序烧写启动后,传输总是失败. |
|
|
|
*(pBootMagicAddCore0+ (0x01000000*i)/4 ) = (*pBootMagicAddCore0) + 0x01000000 * i;
这里的/4是什么意思,因为我看手册上的各个核的地址感觉不需要/4,求解释?如果加上/4的话,你的多核启动解决了嘛?还有一个问题,我们的生成的.out文件很大,大概是3.7MB,用的是8核,现在摸不清楚该如何多核启动,希望能和您交流下您的资料和启动的具体方法。 |
|
|
|
dingL 发表于 2018-6-19 01:39 参考 http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/8065.aspx striker 大神的回复 |
|
|
|
hdfsf 发表于 2018-6-19 01:16 Allen Yin 您好!我现在正在用C6657做项目,目前调试功能用的只是单 个核,我想问题,如何使用双核呢?需要哪些步骤呢?这点我不太理解,或有什么资料可供参考呢? |
|
|
|
只有小组成员才能发言,加入小组>>
336 浏览 1 评论
529 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
774 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
651 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1130 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
58浏览 29评论
143浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
252浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
201浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
57浏览 13评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 11:23 , Processed in 1.413488 second(s), Total 85, Slave 69 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号