完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛扫一扫,分享给好友
|
C6678有时候程序运行不稳定,经常会出现
ti.sy***ios.gates.GateMutex: line 97: assertion failure: A_badContext: bad calling context. See GateMutex API doc for details. xdc.runtime.Error.raise: terminating execution 请问这个是不是内存运行不稳定或者是因为DDR3没有初始化;查看了关于ti.sy***ios.gates.GateMutex API,没怎么看懂。请教一下各位! 这个我该工程的.cfg文件: var Memory = xdc.useModule('xdc.runtime.Memory'); var BIOS = xdc.useModule('ti.sy***ios.BIOS'); /*BIOS.heapSize = 0x2000;*/ var Task = xdc.useModule('ti.sy***ios.knl.Task'); var HeapBuf = xdc.useModule('ti.sy***ios.heaps.HeapBuf'); var Log = xdc.useModule('xdc.runtime.Log'); /* ** Allow storing of task names. By default if you name a task with a friendly display name it will not be saved ** to conserve RAM. This must be set to true to allow it. We use friendly names on the Task List display. */ //Defaults.common$.namedInstance = true; Task.common$.namedInstance = true; var Clock = xdc.useModule ('ti.sy***ios.knl.Clock'); /* ** Interface with IPC. Depending on the version of BIOS you are using the ** module name may have changed. */ /* Use this for pre BIOS 6.30 */ /* var Sem = xdc.useModule ('ti.sy***ios.ipc.Semaphore'); */ /* Use this for BIOS 6.30 plus to get the IPC module */ var Sem = xdc.useModule ('ti.sy***ios.knl.Semaphore'); var Hwi = xdc.useModule ('ti.sy***ios.hal.Hwi'); var Ecm = xdc.useModule ('ti.sy***ios.family.c64p.EventCombiner'); /* ** Configure this to turn on the CPU Load Module for BIOS. ** */ /* var Load = xdc.useModule('ti.sy***ios.utils.Load'); Load.common$.diags_USER4 = Diags.ALWAYS_ON; */ var Diags = xdc.useModule('xdc.runtime.Diags'); /* Load the CSL package */ var Csl = xdc.useModule('ti.csl.Settings'); /* Load the CPPI package */ var Cppi = xdc.loadPackage('ti.drv.cppi'); /* Load the QMSS package */ var Qmss = xdc.loadPackage('ti.drv.qmss'); /* Load the PA package */ var Pa = xdc.useModule('ti.drv.pa.Settings'); /* Load the Platform/NDK Transport packages */ var PlatformLib = xdc.loadPackage('ti.platform.evmc6678l'); var NdkTransport = xdc.loadPackage('ti.transport.ndk'); /* ** Sets up the exception log so you can read it with ROV in CCS */ var LoggerBuf = xdc.useModule('xdc.runtime.LoggerBuf'); var Exc = xdc.useModule('ti.sy***ios.family.c64p.Exception'); Exc.common$.logger = LoggerBuf.create(); Exc.enablePrint = true; /* prints exception details to the CCS console */ /* ** Give the Load module it's own LoggerBuf to make sure the ** events are not overwritten. */ /* var loggerBufParams = new LoggerBuf.Params(); loggerBufParams.exitFlush = true; loggerBufParams.numEntries = 64; Load.common$.logger = LoggerBuf.create(loggerBufParams); */ /* ** Use this load to configure NDK 2.2 and above using RTSC. In previous versions of ** the NDK RTSC configuration was not supported and you should comment this out. */ var Global = xdc.useModule('ti.ndk.config.Global'); /* ** This allows the heart beat (poll function) to be created but does not generate the stack threads ** ** Look in the cdoc (help files) to see what CfgAddEntry items can be configured. We tell it NOT ** to create any stack threads (services) as we configure those ourselves in our Main Task ** thread hpdspuaStart. */ Global.enableCodeGeneration = false; /* Define a variable to set the MAR mode for MSMCSRAM as all cacheable */ var Cache = xdc.useModule('ti.sy***ios.family.c66.Cache'); //Cache.MAR224_255 = 0x0000000f; var Startup = xdc.useModule('xdc.runtime.Startup'); var System = xdc.useModule('xdc.runtime.System'); /* ** Create a Heap. */ var HeapMem = xdc.useModule('ti.sy***ios.heaps.HeapMem'); var heapMemParams = new HeapMem.Params(); /*heapMemParams.size = 0x300000;*/ /*heapMemParams.size = 0x800000 + 0x8000*4 + 0x8000*4;*/ /*heapMemParams.size = 0x8000000;*/ heapMemParams.size = 0x800000 + 0x8000*4 + 0x8000*6; /*heapMemParams.size = 4;*/ heapMemParams.sectionName = "systemHeap"; Program.global.heap0 = HeapMem.create(heapMemParams); Memory.defaultHeapInstance = Program.global.heap0; /* This is the default memory heap. */ var Memory = xdc.useModule('xdc.runtime.Memory'); //Memory.defaultHeapSize = 0x300000; /*Program.heap = 0x10000;*/ Program.sectMap["sharedL2"] = "DDR3"; Program.sectMap["systemHeap"] = "DDR3"; Program.sectMap[".sysmem"] = "DDR3"; Program.sectMap[".args"] = "DDR3"; Program.sectMap[".cio"] = "DDR3"; Program.sectMap[".far"] = "DDR3"; Program.sectMap[".rodata"] = "DDR3"; Program.sectMap[".neardata"] = "DDR3"; Program.sectMap[".cppi"] = "DDR3"; Program.sectMap[".init_array"] = "DDR3"; Program.sectMap[".qmss"] = "DDR3"; Program.sectMap[".cinit"] = "DDR3"; Program.sectMap[".bss"] = "DDR3"; Program.sectMap[".const"] = "DDR3"; Program.sectMap[".text"] = "DDR3"; Program.sectMap[".code"] = "DDR3"; Program.sectMap[".switch"] = "DDR3"; Program.sectMap[".data"] = "DDR3"; Program.sectMap[".fardata"] = "DDR3"; Program.sectMap[".args"] = "DDR3"; Program.sectMap[".cio"] = "DDR3"; Program.sectMap[".vecs"] = "DDR3"; Program.sectMap["platform_lib"] = "DDR3"; Program.sectMap[".far:taskStackSection"] = "L2SRAM"; Program.sectMap[".stack"] = "L2SRAM"; Program.sectMap[".nimu_eth_ll2"] = "L2SRAM"; Program.sectMap[".resmgr_memregion"] = [loadSegment: "L2SRAM", loadAlign:128]; /* QMSS descriptors region */ Program.sectMap[".resmgr_handles"] = [loadSegment: "L2SRAM", loadAlign:16]; /* CPPI/QMSS/PA Handles */ Program.sectMap[".resmgr_pa"] = [loadSegment: "L2SRAM", loadAlign:8]; /* PA Memory */ Program.sectMap[".far:IMAGEDATA"] = [loadSegment: "L2SRAM", loadAlign: 8]; Program.sectMap[".far:NDK_OBJMEM"] = [loadSegment: "L2SRAM", loadAlign: 8]; Program.sectMap[".far:NDK_PACKETMEM"] = [loadSegment: "L2SRAM", loadAlign: 128]; /* ** Create my dynamic Heap. */ /*var heapMemParams2 = new HeapMem.Params; heapMemParams2.size = 2048; // heapMem是要多少分多少 heapMemParams2.align = 8; Program.global.task1Heap = HeapMem.create(heapMemParams2); IHeap_Handle heap = HeapMem_Handle_upCast(task1Heap);*/ /* Required if using System_printf to output on the console */ SysStd = xdc.useModule('xdc.runtime.SysStd'); System.SupportProxy = SysStd; /******************************************************************************************************************** * Define hooks and static tasks that will always be running. * ********************************************************************************************************************/ /* ** Register an EVM Init handler with BIOS. This will initialize the hardware. BIOS calls before it starts. ** ** If yuo are debugging with CCS, then this function will execute as CCS loads it if the option in your ** Target Configuraiton file (.ccxml) has the option set to execute all code before Main. That is the ** default. */ Startup.lastFxns.$add('&EVM_init'); /* ** Create the stack Thread Task for our application. */ var tskNdkStackTest = Task.create("&StackTest"); tskNdkStackTest.stackSize = 0x1400*4; /*tskNdkStackTest.stackSize = 100*1024;*/ tskNdkStackTest.priority = 0x5; /* ** Create a Periodic task to handle all NDK polling functions. ** If you are using RTSC configuration with NDK 2.2 and above, this is done by default and ** you do not need to do this. */ /*var prdNdkClkParams = new Clock.Params (); prdNdkClkParams.period = 0x64; prdNdkClkParams.startFlag = true; Program.global.clockInst1 = Clock.create("&llTimerTick", 5, prdNdkClkParams); */ /* ** If you are using RTSC configuration with NDK 2.2 and above, this is done by default, else ** register hooks so that the stack can track all Task creation Task.common$.namedInstance = true; Task.addHookSet ([ registerFxn: '&NDK_hookInit', createFxn: '&NDK_hookCreate', ]); /* Enable BIOS Task Scheduler */ BIOS.taskEnabled = true; /* * Enable Event Groups here and registering of ISR for specific GEM INTC is done * using EventCombiner_dispatchPlug() and Hwi_eventMap() APIs */ Ecm.eventGroupHwiNum[0] = 7; Ecm.eventGroupHwiNum[1] = 8; Ecm.eventGroupHwiNum[2] = 9; Ecm.eventGroupHwiNum[3] = 10; |
|
相关推荐
11个回答
|
|
|
这个是多核的DSP! 运算处理速度很快的。
首先板子是原厂的还是自己做的? 1.建议从最小系统开始测试!把程序download到内部sram测试! 2.板子是原厂的话建议多看官方手册来初始化DDR3! 3.如果自己做的板子,先检查DDR3的等长布线,降低处理器运行速度以及DDR3访问速度。 提供德州仪器蓝牙和射频cc2540,cc2541,cc26系列,cc13系列脱机烧录工具。 |
|
|
|
|
|
能不能加点注释上去
|
|
|
|
|
60user20 发表于 2018-6-21 14:30 你好,板子是原厂的,我觉得可能是DDR3没有初始化的原因。根据你的建议,我打算先从你给出的第二建议开始入手。谢谢你,哥们! |
|
|
|
|
|
SysStd = xdc.useModule('xdc.runtime.SysStd');
System.SupportProxy = SysStd; 改为xdc.runtime.SysMin 试试 |
|
|
|
|
60user20 发表于 2018-6-21 14:30 楼主是DDR3函数有修改吗? 一般还是维持原状,自己重新调用他的函数体为好。 |
|
|
|
|
|
这是cfg文件,我贴出来主要是想让大家一起帮忙看看哪里有不合理的地方。关于cfg使用JavaScript语言,我不是很懂,所以没什么注释。 |
|
|
|
|
Mryan1996 发表于 2018-6-21 15:14 我试试哈,谢谢咯,哥们 |
|
|
|
|
|
你的是什么系统与版本呀,可以参考个调试方法 http://wenku.baidu.com/link?url=7OfU4rQhayccpmea1r_4ahB7V4vYqtYI_f7ZZ7bLcu9QMAj2Zog9DiS2acSXiYxNWaaWr6b3kQHJGr45XlKUg3cIwsa1gB7KUtQomiHxRiG |
|
|
|
|
tutu304725938 发表于 2018-6-21 15:59 你好,我使用的是sys/bios操作系统,版本6.35,CCS版本:5.5,谢谢你提供的调试方法。 |
|
|
|
|
|
楼主,,这个很复杂了,,一下子谁能找到关键所在啊,,,,期待高手来此区、、
|
|
|
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
550 浏览 0 评论
1613 浏览 0 评论
2047 浏览 0 评论
为啥BQ7693003DBTR芯片在和BQ769X0盒子通讯时收不到信号?
1514 浏览 0 评论
DSP 28027F 开发板 XDS100v2调试探针诊断日志显示了 Error -150 (SC_ERR_FTDI_FAIL)如何解决
1338 浏览 0 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
1757浏览 29评论
2783浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
1724浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
1634浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
1645浏览 13评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 16:20 , Processed in 1.061550 second(s), Total 93, Slave 76 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
4265