再次造了一回轮子,fftask 多任务 RTOS + wavdev 音频驱动
项目地址:https://
+------------------------------+
fftask 是一个简单的 rtos 实现
+------------------------------+
功能说明
--------
总共代码 700 多行,实现了如下功能:
1. 无优先级的多任务调度
2. 无任务个数限制
3. 时间片轮转调度
4. 内置空闲任务,无可调度任务时会执行它
5. 任务休眠、挂起、恢复、等待、取结束码等操作
6. 互斥体对象
7. 信号量对象
目前是在 dos 平台上开发的,在 winxp 下可以调试运行。需要使用到 tc-2.01 编译器。
(tc-2.01 下载地址 https://)
应该可以很容易的移植到其他平台。
调试的时候 dos 平台上,dos 中断是不可重入的,这就导致很多 c 标准库的函数,会存
在重入问题。比如说 printf 的实现,就是用到了 dos 的中断,因此不可重入。简单说,
就是在多个线程中同时调用 printf,程序是会崩溃的。这个问题可以通过 mutex 加锁来
解决,可参考 test.c 的代码。
目前只是造了个简单的轮子,只能作为研究和学习的“玩具”,请不要用到实际项目中。
出了问题,赔钱不要找我,谢谢。
wavdev 是在 fftask 基础上实现的音频驱动,提供了对 dos 下 soundblaster 音频播放的支持。
可以多线程播放声音文件。
+---------+
编译方法
+---------+
需要正确安装 tc-2.01 编译器,然后双击执行 build.bat
---------
rockcarry
2018-6-25