目前遇到使用BIOS的一个疑惑,目前程序中新建了网络的两个任务,一个是侦听,一个是接收数据的任务,当程序全速跑起来之后,再点黄色的按钮暂停的时候,程序停止在0x80362056(no symbols are deifned for 0x80362056,程序没有停止在任务中while(1)的任何地方,这个属于正常现象吗?刚接触BIOS,不太了解,求大神指点。
jun li:
网络程序中使用 Event_pend(evt_rx,Event_Id_30,/* andMask */Event_Id_NONE,/* orMask */BIOS_WAIT_FOREVER);不知道用了这个是不是停下来就是这样子的?
Nancy Wang:
回复 jun li:
单步执行是可以吗?有没有查看一下0x80362056对应的是哪部分的内存地址。
jun li:
回复 Nancy Wang:
这段地址是在我的.text,放在DDR3中,停下来之后提示No Source available for 0x80362056。我再次点运行,停下来地址会变,但还是在DDR3这一段。我的程序Map如下所示:80361c60000000a0sysbios.ae66 : BIOS.obj (.text:ti_sysbios_family_c64p_Hwi_eventMap__E)80361d00000000a0: BIOS.obj (.text:ti_sysbios_family_c64p_Hwi_getStackInfo__E)80361da0000000a0: BIOS.obj (.text:ti_sysbios_heaps_HeapMem_init__I)80361e40000000a0: BIOS.obj (.text:ti_sysbios_knl_Event_pendTimeout__I)80361ee0000000a0: BIOS.obj (.text:ti_sysbios_knl_Idle_run__E)80361f80000000a0: BIOS.obj (.text:ti_sysbios_knl_Semaphore_pendTimeout__I)80362020000000a0: BIOS.obj (.text:ti_sysbios_knl_Task_deleteTerminatedTasksFunc__I)803620c0000000a0: BIOS.obj (.text:ti_sysbios_knl_Task_processVitalTaskFlag__I)80362160000000a0: BIOS.obj (.text:ti_sysbios_timers_timer64_Timer_stop__E)80362200000000a0rts6600_elf.lib : lowlev.obj (.text:write)803622a0000000a0ti.targets.rts6000.ae66 : Assert.oe66 (.text:xdc_runtime_Assert_raise__I)80362340000000a0: LoggerBuf.oe66 (.text:xdc_runtime_LoggerBuf_Module_startup__F)803623e0000000a0helloWorld_pe66.oe66 (.text:xdc_runtime_LoggerBuf_write8__E)80362480000000a0ti.targets.rts6000.ae66 : Text.oe66 (.text:xdc_runtime_Text_xprintf__I)8036252000000080ti.drv.cppi.ae66 : cppi_drv.oe66 (.text:Cppi_setCpdmaLoopback)803625a000000080stk6_ppp_pppoe.ae66 : md5.oe66 (.text:Decode)
Nancy Wang:
回复 jun li:
No symbols definedin CCS just means that the CCS IDE is unable to correlate the assembly code in a particular memory section with any symbols or code from the search path. IF the core is being loaded by some other core or host then you will need to go to Run->Load Program-> Add Symbols and load that out file to see the symbols located at that location in DDR memory.
另外看一下这个链接。
processors.wiki.ti.com/…/Debug_Handbook_for_CCS
单步执行是可以的吗?
jun li:
回复 Nancy Wang:
add Symbols之后,程序界面没有任何变化。利用View Disassembly看到汇编代码,然后绿色的按钮Assembly Step Into(Ctrl+Shift+F5)可以实现单步执行,如果用F6单步执行不可以。这个是不是意味着没找到源代码,程序运行没有问题?
Nancy Wang:
回复 jun li:
是的,一般不影响程序运行。
Nancy Wang:
回复 jun li:
另外看一下你工程properties->build->debug option是不是选的-g full symbol debug?如果不是的话请选择-g进行编译看能否起作用。