在应用处理器上开发实时任务系统

来源:互联网 发布:现货交易模拟软件 编辑:程序博客网 时间:2024/05/16 07:54

应用处理器的应用范围越来越广泛。系统芯片都是采用 ARM Cortex-A 正在抢占部分原来由 ARM Cortex-M 和其他微处理器设备统治的市场。这种趋势由几个因素造成:
● 通常和 IoT 相关的强烈互联需求,不仅从硬件上,也有软件、协议以及安全相关方面
● 深度互动界面的要求,例如多点触控、高分辨率显示以及丰富的图形界面
● 随着SoC的量产以及新产品功能提高,SoC 的价格在下降

作为支持上面论述的典型案例是我们消费者每天都看到产品的重新设计,从微控制器升级到微处理器。这种迁移伴随着新的挑战,例如设计变得越来越复杂,操作系统的抽象层也更加繁杂。使用应用处理器所带来的复杂硬件设计的难题可以被公版参考设计以及使用现成的计算机模块/系统模块或者单板电脑所克服。在操作系统层面,嵌入式 Linux 系统已经在行业中得到广泛应用。大量的开源工具简化功能丰富的复杂嵌入式系统开发。如果使用微控制器,类似的开发工作将变得复杂和耗时。尽管有着诸多的好处,使用类似 Linux 操作系统仍旧产生了不少的质疑和缺乏信心,热别是针对实时控制应用。

开发人员通常的做法是将实时任务和一般任务分摊到不同的处理器上。因此,类似与 Cortex-A 的处理器主要用于多媒体和联网功能,而微控制器则仍然被用作处理实时、关键性任务。本文旨在为开发人员提供一些建议,当他们需要使用应用处理器完成实时系统的时候。

测试实时性能
现在有许多 benchmark 工具可以用于评估软件系统的实时性能,然而我们想要快速地测试下面提到的方法是否可以真的提高系统性能。为了看到结果,我们测量由嵌入系统的标准 GPIO 产生的方波抖动。用这种方法,我们可以简单、快速地分析实时性能,并提供初步的优化建议。我们开发了一个以2.5KHz(200µs High / 200µs Low) 频率翻转 GPIO的应用。用示波器连接 GPIO,测试方波和输出时序。

这里写图片描述
图1:抖动测试

标准 Linux 测试结果如图2所示。翻转 GPIO 的应用配置为实时任务(SCHED_RR),内核配置了Voluntary Kernel Preemption (CONFIG_PREEMPT_VOLUNTARY)。

这里写图片描述图2:使用标准 Linuxe 内核配置的方波抖动分布图

测试结果表面只有 92% 的波形在 ±10% 的误差以内。最差的测量结果显示延时超过 15ms,逾 3700% 的误差。

更多详细内容请参见:http://www.yiboard.com/thread-698-1-1.html

0 0
原创粉丝点击