嵌入式软件异步编程:异步带来的性能提升

news/2025/2/23 15:31:45

以两个串口同时发送数据为例比较异步和同步的发送性能。

http://blog.csdn.net/zoomdy/article/details/72677789
mingdu.zheng at gmail dot com

同步编程

同步发送

  • TXD1发送时不能处理其它任务
  • TXD2要在TXD1发送完成后才能开始发送
  • 总发送时间为TXD1和TXD2的发送时间总和,约为150ms

异步编程

异步发送

  • TXD1和TXD2几乎同时开始发送,TXD2略微延后于TXD1(约4us)
  • 总发送时间为max(TXD1,TXD2),即TXD1发送时间和TXD2发送时间的最大值,约为75ms
  • 当有更多的外设可以并发工作时,性能提升更加明显

2019-05-10 补充

同步非阻塞能达到和异步一样的效果。借助 Protothreads 可以很简单地实现同步非阻塞。


http://www.niftyadmin.cn/n/1107963.html

相关文章

CMake构建Qt5的VS2015项目 (Hello Qt5)

Qt5的编译 Windows下载编译Qt5 Gui CMakeLists.txt 源码 cmake_minimum_required(VERSION 2.8.11) project(HelloQt5) # Find the QtWidgets library find_package(Qt5Widgets) # Tell CMake to create the HelloQt5 executable add_executable(HelloQt5 WIN32 main.cpp) # Use…

php抓包视频教程,POSTGET抓包及php数据请求提交教程

说到POST我们肯定会联想到GET,这两种都是后台php提交数据的一种方式,但是我们为了达到一些目的:比如刷微信步数,或者获取资源源地址mp4.mp3.zip地址等等,这里我们就需要用到抓包工具进行抓包,并且读懂链接最终得出达到…

嵌入式软件异步编程:同步转为异步

在现有同步实现的基础上进行异步实现,需要将同步代码转换成异步代码。 http://blog.csdn.net/zoomdy/article/details/64125084 mingdu.zheng at gmail dot com 基本方法:分开请求和结果 I/O的基本操作可以细分为两个部分: 发起请求检查结…

计算机中病毒后的一些反应(转)

计算机中病毒后的一些反应(转)[more]  1、 平时运行正常的计算机突然经常性无缘无故地死机。 病毒感染了计算机系统后,将自身驻留在系统内并修改了中断处理程序等,引起系统工作不稳定,造成死机现象发生。 2、操作系统无法正常启动。 关机后…

【BARTS计划】【Review_Week1】Google Docs 成为青少年们喜爱的聊天 app

BARTS计划 Review :每周阅读并点评至少一篇英文技术文章。 附原文链接 Google Docs 本是作为协作办公工具存在的,却成了学生们现代版“传纸条”的工具。认真的说,“你永远不知道用户是怎么使用你的产品的”。 ┑( ̄Д &#xffe…

php querystring使用,php – 表单不会向querystring发送任何数据

我在这里结束了我的智慧,我很肯定这是一个荒谬的打字错误,或者我忘了写点什么.无论如何,我试图将数据从twitter引导模式内的表单发送到一个名为’processed.php’的文件,该文件使用PHPMailer脚本.但是,当我提交表单时,没有数据传递给查询字符串,url只是更改为’/processed.php&…

python 处理命令行参数--转载

标题写了那么久,现在现在才有时间,整理下自己的思路。首先先总结下自己对sys模块的理解。手册上对sys的描述是系统参数和系统函数,这里的系统实际上是python解释器。这个模块提供了用户可以访问的解释器变量和一些可以与解释器进行交互的功能…

shell中几个很有趣的例子(转)

shell中几个很有趣的例子(转)[more]有好一段时间不来了,怪想大家的。眼看快到十月一了,写了两个awk程序作为礼物送给shell版的兄弟姐妹们,祝大家节日愉快!注:若转载请保持程序的完整,谢谢!程序一…