查看bios用户手册时,编写基于bios的Timer定时器程序发现了在tickFxn函数中调用System_printf函数时发生了
ti.sysbios.gates.GateMutex: line 97: assertion failure: A_badContext: bad calling context. See GateMutex API doc for details.
xdc.runtime.Error.raise: terminating execution
而将System_printf("Current period = %d\n",Timer_getPeriod(mytimer));这句放入到Task中是可以运行的;
有个问题是通过调用Timer_getPeriod函数来获取定时器的周期,是需要等到定时器的时间到了触发才能准确的获取其周期,但是在定时器中断服务程序tickFxn函数中不能调用这个函数,请问如何获取定时器周期并打印出来,还有就是在定时器中断服务程序是不是真的不能调用System_printf函数,如果不能调用的话,那是否可以通过相应的措施弥补这一缺憾呢。
谢谢
Thomas Yang1:
你可以直接调用TSCL/TSCH函数来获取准确的core cycle统计
Gangping Li:
回复 Thomas Yang1:
你好,请问一下在定时器中断函数是不是确定不能使用类似于打印的函数(System_printf,printf等等)