一,概念介绍
队列、信号量、事件组等IPC技术都需要创建一个中间对象进程之间通过这些中间对象进行通讯或同步。创建对象就需要分配内存,占用一定内存。
二,任务通知的特点:
一个任务或ISR向另外一个指定的任务发送通知,将发送通知的进程称为发送者,将接收通知的进程称为接收者发送者可以是任务或ISR,接收者只能是任务,不能是ISR发送者发送通知时可以带有一个通知值,或者是使接收者的通知值发生改变的计算方法,例如使通知值加1。发送者只管发送通知,是否接收和处理通知由接收者去决定接收者有未处理的通知时处于挂起状态。接收者可以进入阻塞方式等待通知,接收到通知后再做处理。
局限性:
1)不能向ISR发送通知,只能是任务或ISR函数向任务发送通知
2)任务通知指定了接收者,多个发送者可以向同一个接收者发送不同的通知,但是发送者不能将一个通知发送给不同的接收者,也就是不能进行消息广播
3)任务通知一次只能发送或接收一个uint32 t类型的数据,不能像消息队列那样发送多个缓冲数据,因为任务控制块中只有-个uint32 t类型的通知值作为数据缓存
三,相关函数
四,Demo
在ISR中接收ADC值,将ADC转化结果作为通知值发送给另一个任务,然后显示。
在Demo8