本文主要是介绍vxworks下的问题定位及调试方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
vxworks是一种实时操作系统,单个CPU下只能有一个任务运行,系统有多任务运行时采用调度算法,将内核插入到某个任务中执行。任务是系统中独立,相互作用的程序单元。调度算法有:基于优先级抢占的任务调度、轮询调度。两者常常一起使用,优先级高的任务优先得到调度,同优先级时,采用轮询机制,如果不采用轮询调度,同优先级的任务间,第一个得到CPU的任务将独占CPU,会造成死循环等。 vxworks下的问题定位调试手段有: 1.异常情况下的调用栈信息查看,发生异常时,系统会记录异常指令。寄存器中会写入发生异常时的函数调用。 2. 内存dump,怀疑内存被改写的时候,打印相应的内存内容。 如,发生空指针,设备重启的时候,设备打印异常信息,提示空指针。然后在寄存器中查看函数调用关系。把.bin文件反汇编,把调用栈中的函数地址映射到代码中。 发生死循环等,也可以根据上述方法,定位问题。这篇关于vxworks下的问题定位及调试方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!