前言
上一篇文章基于rt-thread系统的探索者开发板综合测试实验(一),实现了用rt-thread系统替换uC/OS-II系统实现综合测试实验,实现了部分功能,使rt-thread系统跑起来了,这篇文章在上一篇的基础上实现音频播放功能。
一、增加的内容
音频播放需要创建一个新的线程,用来播放音乐,我们命名为thread_audio_play,对应uC/OS-II系统下的任务audio_play_task。这里还是要注意线程栈的大小,uC/OS-II系统下的任务audio_play_task的栈大小是512,我把线程thread_audio_play的栈大小同样设置为512会报错,这里我暂时设置为1024,可以正常使用,具体原因以后再分析吧。
音频播放用到了邮箱的知识,邮箱服务是实时操作系统中一种典型的线程间通信方法。这里用到了邮箱的创建、发送和接收函数。
二、修改程序
新建的音频播放线程的优先级为2,音频播放函数audio_play所在的主线程的优先级为6。播放线程用来播放音乐,audio_play函数里用来选歌和切歌。选歌和切歌就是通过邮箱传递播放音乐文件指针参数来实现的。下面列出邮箱的创建、发送和接收的程序。
1、创建邮箱
邮箱初始化函数创建在thread_start线程中,在创建main线程之前完成。具体如下:
result =