这两天看ucosii的书,也直接移植到stm32单片机上运行了,感觉很好,今天下午突然一个想法:如果要单片机把接收到的数据通过消息队列传给其他任务,那该怎么做?
于是乎开始编程,验证,可是发现一个问题,我的中断函数和那些任务函数不在一个文件里,在中断函数的文件里添加了ucosii的头文件,有一个调用出了错误:
OSQPostFront(Str_Q,s);
编译器没有说OSQPostFront函数出错,而是说事件控制块Str_Q, 而这个事件控制块是在主文件里做了定义,只是没有到头文件里声明,于是我傻乎的在头文件里按以前裸机编程的办法去声明Str_Q
extern OS_EVENT *Str_Q;
一大堆的错误出现了,全是针对OS_EVENT的,
扯了太多,问题就是怎么在中断函数里去发送消息队列而且编译器不报错
天地庄周马;江湖范蠡船。
个性签名还是放QQ号吧,2060347305,添加说明EEworld好友
其实问题就是在这个文件里定义的事件控制块,到其他文件里要发送消息队列,编译器不报错
天地庄周马;江湖范蠡船。
个性签名还是放QQ号吧,2060347305,添加说明EEworld好友
天地庄周马;江湖范蠡船。
个性签名还是放QQ号吧,2060347305,添加说明EEworld好友
raw-os的queue_buffer模块以及fifo+信号量都能通过中断向任务传递数据,建议使用raw-os.
我想先学好一门,就是有点迷茫,不知道RAW_OS相对UCOSii在MCU里哪一个更好
天地庄周马;江湖范蠡船。
个性签名还是放QQ号吧,2060347305,添加说明EEworld好友
建议使用RTX
Cortex M版本的RTX源码就在你的C:\Keil\ARM\RL\RTX\SRC\CM目录下
海量例程就在你的C:\Keil\ARM\Boards\目录下的 RTX_Blinky文件下
楼主使用STM32,那么就参考C:\Keil\ARM\Boards\ST\STM32-Discovery\RTX_Blinky下的例子
帮助与参考文档在:C:\Keil\ARM\Hlp\rlarm.chm
你分分钟就可以学会使用
RTX是专为Cortex-M写的,没有之一!其他的全是垃圾!
本帖最后由 samos2011 于 2015-10-27 11:25 编辑
天地庄周马;江湖范蠡船。
个性签名还是放QQ号吧,2060347305,添加说明EEworld好友