图1软件运行流程图
实现方式
在软件实现时,存在常用的4种实现方式。
1:使用临时变量作为缓存空间,无需资源互斥锁,存在临时变量被系统回收后打印乱码的问题,且消耗任务堆资源。
2:使用new堆栈的方式作为缓存空间,但反复存在软件设计内存溢出和越界的风险。
3:使用全局变量作为缓存空间,需要二进制信号量互斥锁,同时为了防止打印乱码需要使用数据输出循环缓存此方式可增加调试信息保存到文件中,因为在读写文件时同样需要使用资源互斥锁。二进制信号量能有效对共享资源的访问进行互锁,来实现互斥。模拟串口使用printf函数
4:使用创建任务方式,将打印输出放入缓存列表中,通过低优先级任务输出,保证当前运行任务的实时性能,
输出打印实时性变差的问题。
结合实际使用情况,本文设计使用方式3,在开发阶段牺牲了一定的实时性能,但无需反复申请堆栈,同时满足调试打
图2仿真运行结果
输出管理、调试信息内容组合、颜控制和文件保存,并通过模拟的方式实现了此方法。通过使用此方法VxWorks嵌入式实时操作系统软件联试阶段和系统集成阶能有效提高软件设计和调试效率,具有一定工程意义。
参考文献
徐小权.基于VxWorks实时多任务的信号处理软件设计
电脑知识与技术,2013,9(17):4009-4012.
张菊.浅析C语言printf函数的功能及使用[J].中国科技信,2012(10):111-116.
查荣明.Linux与VxWorks的任务调度研究及应用[J].信息与电脑(理论版),2018(11):17-20.
籍林峰,曹伟.VxWorks操作系统中中断的应用[J].雷达与对