完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
ti的工程师:
你们好,最近需要使用openMP,发现多核不能pirntf出信息到控制台上。代码如下,很简单: void main()[int tid = 0;int nthreads = 0;omp_set_num_threads(8);#pragma omp parallel private(nthreads, tid)[tid = omp_get_thread_num();printf("Hello World from thread = %dn" ,tid);if (MultiProc_self() == 0)[nthreads = omp_get_num_threads();printf("Number of threads = %dn", nthreads);]] ] 但是只有0和打印出消息到控制台上: [C66xx_0] Hello World from thread = 0 [C66xx_0] Number of threads = 8 我查看了.CIO段是放在L2RAM中的,应该没问题啊, 不知道这里是个什么情况,下面是我的cfg配置: var Log = xdc.useModule('xdc.runtime.Log');var Diags = xdc.useModule('xdc.runtime.Diags');// allocate out of this shared region heap after IPC has been started.var SharedRegion = xdc.useModule('ti.sdo.ipc.SharedRegion');// Configure HeapOMP for the shared memory heap// HeapOMP created in ti/omp/common.cfg.xsvar HeapOMP = xdc.useModule('ti.omp.utils.HeapOMP');var MultiProc = xdc.useModule('ti.sdo.utils.MultiProc');var TaskKnl = xdc.useModule('ti.sy***ios.knl.Task');HeapOMP.sharedRegionId = 2;HeapOMP.localHeapSize = 0x20000;HeapOMP.sharedHeapSize = 0x1000000;// Specify the Shared RegionSharedRegion.setEntryMeta( HeapOMP.sharedRegionId,[ base: 0x90000000,len: HeapOMP.sharedHeapSize,ownerProcId: 0,cacheEnable: true,createHeap: true,isValid: true,name: "heapomp",]);/* load the common configuration file */xdc.loadCapsule('ti/omp/common.cfg.xs');var System = xdc.useModule('xdc.runtime.System');var SysStd = xdc.useModule('xdc.runtime.SysStd');System.extendedFormats = "%$S";System.SupportProxy = SysStd;var OpenMP = xdc.useModule('ti.omp.utils.OpenMP');OpenMP.setNumProcessors(8);Program.sectMap["ddr"] = new Program.SectionSpec();Program.sectMap["ddr"].loadSegment = "DDR3";Program.sectMap[".threadprivate"] = new Program.SectionSpec();Program.sectMap[".threadprivate"].loadSegment = "L2SRAM";// Enable Cache Write-back for HEAPOMPvar Cache = xdc.useModule('ti.sy***ios.family.c66.Cache');Cache.setMARMeta(0x90000000, 0x10000000, Cache.PC | Cache.WTE);var MultiProc = xdc.useModule('ti.sdo.utils.MultiProc');var Notify = xdc.useModule('ti.sdo.ipc.Notify');var Ipc = xdc.useModule('ti.sdo.ipc.Ipc');Program.sectMap[".testimage"] = "DDR3"; platform如下: 我也试了system_printf,也不行,因为我项目上要打印出多核的状态信息方便调试,所以需要解决这个问题。 感谢宝贵时间,网上也不好找到类似的情况,没办法至于求助你们了。 |
|
相关推荐
4个回答
|
|
|
|
|
|
官方开发板,EVM6678LE,软件包是mcsdk_2_01_02_05 和 bios_6_33_06_50 我比较怀疑是CCS的设置问题,但是找了半天也没找到这么设置CIO的选项,现在是只有0核这个主核能够在控制台显示,其他的核打印不了消息。 |
|
|
|
chinarensz 发表于 2018-6-19 07:33 这个问题解决了,是我忘记给其它核导入symbol了,不好意思 |
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
827 浏览 1 评论
1071 浏览 0 评论
620 浏览 1 评论
467 浏览 1 评论
662 浏览 2 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
265浏览 29评论
1228浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
360浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
337浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
204浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-3-6 16:54 , Processed in 1.053273 second(s), Total 81, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191