1、概述
为了实现复杂的功能,编程时免不了要进行线程间的同步操作,程序线程之间实现同步的方式有很多中,通过MAILBOX实现线程之间的同步就是常见的一种方法,在此就给大家完整演示一下在RT-Thread中线程间使用MAILBOX实现同步的全过程。
2、实现过程记录
第1步,打开一个已经能够工作的软件工程。
我将在此软件工程中添加线程间同步方式MAILBOX的测试代码。
第2步,添加代码。
在applications目录下新建一个usr_mailbox.c文件。
访问官网的示范代码网址:
https://www.rt-thread.org/document/api/mailbox_sample_8c-example.html
拷贝示范代码到usr_mailbox.c文件中,直接拷贝进来的代码格式有点难看,作一下代码的格式化处理。
在文件usr_mailbox.c中找到二处宏定义:
ALIGN(RT_ALIGN_SIZE)
将其修改为:
rt_align(RT_ALIGN_SIZE)
此测试代码没有与RT-Thread SDK版本做同步更新,如果不修改的话,后面编译软件工程将会出错。
第3步,编译软件工程。
软件工程编译成功。
第4步,下载固件到目标板运行。
固件下载完成,并运行至main()的断点处。
点击图标全速运行代码。
第5步,PC端启动Putty,查看运行结果。
在Putty的MSH窗口中运行命令:
help
在help命令运行结果的列表中可以见到mailbox_sample命令。
运行命令:
mailbox_sample
查看运行结果:
运行结果符合设计预期。