FREERTOS指令测试的思考
采用freertos编程后,有必要增加指令测试的功能:
1、便于对于软件各个子模块或功能点进行测试。
2、便于对硬件各个功能点是否正常进行测试。
在裸机编程中,我们一般使用串口进行运行数据的打印,同时使用串口接收上位机的控制命令,这样做当然是有局限性的,一方面,如果功能复杂,资源有限,所以的串口都被占用,则无法使用串口进行测试命令的收发,另一方面,测试命令并不一定通过串口传输,也可以通过CAN USB等接口。由于在freertos中,各个功能是模块化的,常见的思路是通过消息队列或者信号量由测试入口发送测试命令给各个测试单元,例如:
1、使用xQueueSend从中断消息中发送到的FIFO中读出发送的控制命令
2、TASK1使用xQueueReceive读取消息队列
3、TASK2使用xQueueReceive读取消息队列
问题在于,使用xQueueReceive读取消息队列对于消息来说是一次性的,如果TASK1读取了,TASK2就无法读取,可能的结果是消息队列内的消息对TASK1没有用处但是被TASK1读取了;TASK2需要消息队列内的控制命令,但是读取到的消息队列内容却是空的。在FREERTOS中,还有另外一个消息队列读取方法xQueuePeek,该方法读取消息队列后,消息仍在队列中,不影响其他任务对消息队列中数据的订阅。
综上,一发多收应用场景下,消息队列的使用方法如下:
1、发送任务中,使用xQueueSend发送控制命令;为了防止消息队列的写满溢出或堵塞,在每次填充消息队列前,使用xQueueReset方法将消息队列清空。
2、TASK1使用xQueuePeek读取消息队列,如果读取到的控制命令是针对自身任务测试的,则执行。否则,只获取消息,不执行消息,也不影响当前的消息队列。
3、TASK2使用xQueuePeek读取消息队列,如果读取到的控制命令是针对自身任务测试的,则执行。否则,只获取消息,不执行消息,也不影响当前的消息队列。
当然,在使用消息队列前,不要忘记先要创建消息队列。
FREERTOS指令测试的思考的更多相关文章
- 关于html转换为pdf案例的一些测试与思考
由于工作所需,最近花时间研究了html转换为pdf的功能.html转换为pdf的关键技术是如何处理网页中复杂的css样式,通过在网上收集资料,发现目前html 转换为pdf的解决方案主要分为三类: 客 ...
- MinHook测试与分析(x86下 E8,E9,EB,CALL指令测试,且逆推测试微软热补丁)
依稀记得第一次接触Hook的概念是在周伟民先生的书中-><<多任务下的数据结构与算法>>,当时觉得Hook的本质就是拦截,就算到现在也是如此认为. 本篇文章是在x86下测 ...
- [原创]MinHook测试与分析(x64下 E9,EB,CALL指令测试,且逆推测试微软热补丁)
依稀记得第一次接触Hook的概念是在周伟民先生的书中-><<多任务下的数据结构与算法>>,当时觉得Hook很奇妙,有机会要学习到,正好近段日子找来了MiniHook,就一 ...
- 4-51单片机ESP8266学习-AT指令(测试TCP服务器--使用串口调试助手--不连接路由器)
上一篇连接 http://www.cnblogs.com/yangfengwu/p/8757513.html 源码链接:https://pan.baidu.com/s/1wT8KAOIzvkOXXN ...
- 移动onenet基础通信套件V1.08版本的AT指令测试
1. 本次测试版本V1.08,AT+MIPLCREATE,首先需要一个配置文件.该指令创建一个基础通信套件的实例 2. 看下CGFID=2的配置,这个连接类型,UDP是1还是0?用户名和密码是什么?哪 ...
- FreeRTOS中断测试
configMAX_SYSCALL_INTERRUPT_PRIORITY 高于此优先级的中断,不能被禁止 #ifdef __NVIC_PRIO_BITS #define configPRIO_BITS ...
- EC20指令测试
cat /dev/ttyUSB2 & echo -e "AT+CGMM\r\n" >/dev/ttyUSB2 //输出模块型号 echo -e "AT+ ...
- Ubuntu+Fedora进阶学习,指令迅速查询,Bug迅速查询(Ctrl+F)
There is some notes while I am learning Ubuntu Operate System! (Ask Ubuntu & Fedora) 1-- Hard li ...
- tst、cmp、bne、beq指令
1.tst:逻辑处理指令,用于把一个寄存器的内容和另一个寄存器的内容或立即数进行按位的与运算,并根据运算结果更新CPSR中条件标志位的值.当前运算结果为1,则Z=0:当前运算结果为0,则Z=1 cmp ...
- Http压力测试工具HttpTest4Net
HttpTest4Net是一款基于C#实现的和HTTP压力测试工具,通过工具可以简单地对HTTP服务进行一个压力测试.虽然VS.NET也集成了压力测试项目,但由于VS自身占用的资源导致了在配置不高的P ...
随机推荐
- 学Shiro完结版-4
第十四章 SSL--<跟我学Shiro> 对于SSL的支持,Shiro只是判断当前url是否需要SSL登录,如果需要自动重定向到https进行访问. 首先生成数字证书,生成证书到D:\lo ...
- shell脚本输出带文本颜色背景颜色自定义样式格式内容
shell脚本中 echo 和 printf 都可以输出内容.示例1: echo -e "\033[43;35m david use echo say Hello World \033[0m ...
- cmake-3
本节内容,转载文章:https://www.zhihu.com/column/c_200294809 :参考程序:https://github.com/BrightXiaoHan/CMakeTutor ...
- ctfshow--web6 sql注入空格绕过
这道题目空格被过滤了,那么我们可以用/**/来替换空格 'union/**/select/**/1,(select/**/database()),3# //查看数据库名名字为web2 查看web2下的 ...
- 绕过 console-ban
绕过 console-ban console-ban 项目介绍 console-ban 是一个高效且轻量级的 JavaScript 库,其核心功能是有效阻止用户通过浏览器的开发者工具(例如按 F12 ...
- FLink同步mysql到Iceberg丢数问题排查解决
一.问题背景 数据对比程序发现通过Flink cdc同步mysql写入Iceberg表运行一段时间后存在丢数问题,排查到丢数是由于hivemetastore钩子函数缺陷引起,由腾讯云EMR修复 钩子函 ...
- captura怎样解决FFmpeg解析错误问题
captura怎样解决FFmpeg解析错误问题?captura软件里大家在进行屏幕录制的工作得时候都会用到captura软件,软件得功能可以满足大家的需求,可以轻松的录制屏幕,进行屏幕截屏等,但是又小 ...
- Typecho博客后台登陆界面美化
登录界面: 食用方法: 备份 admin 目录 压缩包内容上传到 admin 目录内. 结构:网站根目录 /admin/login.php 结构:网站根目录 /admin/style 修改 login ...
- 文件快递柜FileCoxBox-匿名口令分享文本,文件,像拿快递一样取文件
FileCoxBox特色 轻量简洁:Fastapi+Sqlite3+Vue2+ElementUI 轻松上传:复制粘贴,拖拽选择 多种类型:文本,文件 防止爆破:错误次数限制 防止滥用:IP限制上传次数 ...
- Typecho美化之网页底部增加好久不见的底部样式
好久不见之本站同款网站底部样式,效果见本站. 1.修改footer.php首先,在页脚文件footer.php文件的最下面放入以下代码: <!-- 好久不见 --> <div cla ...