尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

FT2000/2 核心板 VxWorks 系统下实时任务调试技巧

FT2000/2 核心板 VxWorks 系统下实时任务调试技巧 这段时间帮客户调了几个 FT2000/2 平台的 VxWorks 项目都是做实时控制的对任务调度、中断响应要求很高中间总结了一些提升实时性的实用技巧分享给大家。我们用的是西安威嵌神州的 FT2000/2 核心板下面的技巧都是基于这款板子实际测试验证的同平台的朋友可以参考。首先是中断优先级配置VxWorks 下默认的中断优先级不一定适合你的项目尤其是控制类项目像 CAN、RS422 这类实时性要求高的接口一定要把它们的中断优先级调高比普通的网络、存储中断高不然很容易出现数据丢包或者响应延迟。我们一般会把实时接口的中断优先级设到最高级调度延迟能控制在微秒级。西安威嵌神州这款板子配套的 BSP 预留了优先级修改接口调整起来很方便。然后是任务划分的问题很多人喜欢把所有逻辑都放到一个任务里结果一卡全卡。建议把功能拆成不同优先级的任务紧急的控制逻辑放高优先级任务数据处理、日志打印放低优先级任务之间用消息队列通信不要用全局变量随便传数据很容易出竞态问题。还有就是尽量减少任务切换的频率同优先级的任务不要太多调度开销会小很多。还有一个容易踩的坑是缓存一致性FT2000/2 的 CPU 带缓存DMA 传输的时候如果缓存没刷干净很容易读到旧数据。做高速数据采集或者总线通信的时候DMA 传输前后一定要手动刷缓存或者用一致性内存不然数据出错了很难查原因。最后说下量产的事我们的开发板和量产核心板硬件配置完全一样VxWorks 的 BSP 可以直接通用开发板上调好的所有任务逻辑、驱动量产板直接就能用。前期用低成本开发板快速开发后期直接换量产核心板不用再做 BSP 移植能省很多时间。有同款板子调试问题的朋友也可以联系西安威嵌神州交流。
返回列表