完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
目的是为了便于CCS工程的管理,想让一个CCS工程,相同的cfg配置和cmd(map)文件编译出的一个image能运行在多个DSP核,且数据、堆栈每个核私有。不想使用MAD工具,感觉满足不了一个CCS工程的条件。场景如下:
1. 4个核,运行4组不同的task,运行时用DNUM区分启动不同的task组 2. 想使用相同的配置,将私有数据映射到相同的一段ram,例如(0xa0000000 开始的64M),但实际4个核使用4段不同的物理地址。 3 代码段和共享数据直接使用实际的DDR3内存。 大概的方法是不是应该使用MPAX在程序加载到每个核之前将DDR3的一段物理地址映射为0xa0000000开始的虚拟地址,关键是数据加载前,load view变execute view之前完成映射。看了文档Multicore Shared Memory Controller,TMS320C66x DSP CorePac,还是不知道具体怎么操作,或者哪里有sample code,多谢!! |
|
相关推荐
7 个讨论
|
|
MAD 工具 支持prelink,就可以重映射物理地址,使得每个核访问的逻辑地址相同,实际对应不同的物理地址,不知道你为什么非要自己弄,
在部署文件里面添加 [ "name" : "ddr-data", "vaddr" : "0xD0000000", "paddr" : [ "0x801000000", "0x802000000", "0x803000000", "0x804000000", "0x805000000", "0x806000000", "0x807000000", "0x808000000" ], "size" : "0x1000000", "secNamePat" : ["systemHeap" ], "cores" : [0,1,2,3,4,5,6,7], "permissions" : ["UR", "UW", "SR", "SW"], "cacheEnable" : true, "prefetch" : true, "priority" : 0, "shared" : false ], 就可以了, 我们项目就是这么弄的,我建议你研究下MAD工具的使用,会用了,多核程序部署很简单,因为MAD都帮你做了。就算你自己解决了映射问题,还涉及到数据搬移到每个核,程序下载怎么弄等等。 |
|
|
|
|
|
juujwfdf 发表于 2019-1-4 12:14 han yang1, 非常感谢你的建议。因为我们使用的6614有一个ARM运行linux,数据搬移到每个核,程序下载的这些问题,可以由linux完成。我主要是想一个CCS工程编译出来的.out文件可以直接运行于4个核,因为刚接触CCS/DSP开发,对很多工具比较陌生。 按照你上面的配置 "vaddr" : "0xD0000000", "paddr" : [ "0x801000000", "0x802000000", "0x803000000", "0x804000000", "0x805000000", "0x806000000", "0x807000000", "0x808000000" ], "size" : "0x1000000", 是不是在CCS link的时候map的段为0xD0000000开始的16M 地址空间(利用cmd 文件)。运行时发生地址重映射,每个核映射到不同的物理地址? |
|
|
|
|
|
sdgsgsgs 发表于 2019-1-4 12:21 不是在link.cmd里面修改,是改MAD工具里面的配置文件deployment_template_C6678_windows.json 在mcsdk_2_01_02_05toolsboot_loadermad-utilsmap-toolconfig-files 目录里面 如何使用MAD工具给你一个连接,有详细说明, http://processors.wiki.ti.com/index.php/MAD_Utils_User_Guide 另外一个链接是开发包里面的一个多核例子 http://processors.wiki.ti.com/index.php/MCSDK_Image_Processing_Demonstration_Guide 我把我的这个配置文件给你参考 我的是6678,可能有些不一样。 |
|
|
|
|
|
zbb9612 发表于 2019-1-4 12:48 谢谢你Andy,但如果将boot.c加入工程的话,将会出现link错误,错误信息如下: error #10056: symbol "_c_int00" redefined: first defined in "./platform/lib/bios/boot.obj"; redefined in "D:tixdctools_3_23_03_53packagestitargetsrts6000libboot.ae66 error #10056: symbol "_stack" redefined: first defined in "./platform/lib/bios/boot.obj"; redefined in "D:tixdctools_3_23_03_53packagestitargetsrts6000libboot.ae66 请问如何让工程在link的时候不用"D:tixdctools_3_23_03_53packagestitargetsrts6000libboot.ae66 谢谢!! |
|
|
|
|
|
sdgsgsgs 发表于 2019-1-4 12:55 你可以修改函数入口及stack变量名字,然后在project->build options->c6000 linker->Advanced options->symbol management,右边框框有一个specify program entry point for the output model(--entry point, -e)后面输入新的入口函数如_my_c_init00,函数入口名字默认为_c_init00 |
|
|
|
|
|
juujwfdf 发表于 2019-1-4 12:32 han yang1 您好,我刚刚接触DSP 多核开发,在做NAND FLASH 的自加载,现在单核的自加载可以完成,boot后可以从UART口看到输出的信息。现在需要做多核的启动,知道多核的实现有两种方法,一种就是利用hex6x工具将多个out合并并转换成bin然后烧写进去,但是单核自加载时,不需要转换工具,直接将out重命名为bin即可烧写,所以很纳闷,用转换工具是否最终可以实现,如果可以,是要做哪些改动?还有一种方法,需要用到MAD工具,我看到william hill官网 里面有很多人的讨论,首先我需要安装哪些软件,您能给提供一个链接嘛?然后,MAD的操作步骤都有哪些呀,有没有6678开发板的demo呢? |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
2922个成员聚集在这个小组
加入小组537 浏览 1 评论
390 浏览 1 评论
589 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
838 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
689 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
139浏览 29评论
758浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
295浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
251浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
101浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-13 11:06 , Processed in 0.851378 second(s), Total 53, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号