FreeRTOS笔记(十四)[简] 软件定时器、事件组、任务通知

上一文链接:FreeRTOS笔记(十三)内存管理


  在《Linux内核情景分析》经典书籍中提到,操作系统的核心是进程管理和文件系统,二者可以缺一,比如缺少文件系统就是常见的嵌入式操作系统,缺少进程管理就是MSDOS,但是如果二者都缺,就称不上是操作系统,因此,FreeRTOS作为一个操作系统微内核,核心就是任务管理,对于其它辅助功能,有更加优秀的书籍博客

01 - 软件定时器

  在官方API手册中第5章可以查阅
Alt
  不属于FreeRTOS内核功能,可剪裁。如果开启次功能,它由定时器任务提供服务,这个任务系统会自动创建,然后用户可以创建定时器,需要提供定时器溢出回调函数,得到句柄后就可以使用API操作

02 - 事件组

  在官方API手册中第6章可以查阅
Alt
  不属于FreeRTOS的内核功能,可剪裁。如果开启次功能,可以提供任务之间一对多的同步方式,同步方式前面用过信号和信号量,不过大多只用在一对一的场合。本质是按位操作,一个二进制位代表一类事件,多个二进制位组成一个事件组,事件组提供了原子操作,可以避免资源操作混乱

03 - 任务通知

  在官方API手册中第2章任务调度器可以查阅
Alt

  新增功能,可以替代信号量、消息队列和事件组等功能,本质是在TCB中添加了一个状态块NotifyState,根据TCB的这个状态块转换任务状态或者得到对应信息。

04 -总结

  • 软件定时器可以帮助用户快速实现定时功能
  • 事件组可以提供一对多的任务同步,还有原子操作
  • 任务通知直接操作TCB,提供高效的通信方式
FreeRTOS是一个开源的实时操作系统(RTOS),专门用于嵌入式系统。它提供了一套可移植的API,使开发者能够轻松地编写多任务应用程序。 以下是一些关于FreeRTOS笔记: 1. 任务(Tasks):FreeRTOS使用任务实现并行执行。每个任务都有自己的独立堆栈空间和优先级。任务可以创建、删除和挂起。 2. 调度器(Scheduler):FreeRTOS的调度器负责决定哪个任务应该在给定时间运行。它使用优先级调度算法,并且可以配置为使用抢占式或协作式调度。 3. 信号量(Semaphores):信号量是一种用于同步和通信的对象。它可以用于任务之间的互斥访问共享资源或任务之间的通信。 4. 队列(Queues):队列提供了一种任务之间传递数据的方式。任务可以将数据发送到队列,另一个任务可以从队列中接收数据。 5. 事件标志(Event Flags):事件标志用于任务之间的同步和通信。一个任务可以等待一特定的事件标志发生,另一个任务可以设置或清除这些事件标志。 6. 定时器(Timers):FreeRTOS提供了软件定时器,可以在指定时间间隔内运行回调函数。 7. 内存管理(Memory Management):FreeRTOS提供了内存管理功能,可以动态分配和释放内存。 8. 中断(Interrupts):FreeRTOS可以与硬件中断一起使用,以实现任务的抢占式调度。 这些只是FreeRTOS的一些基本概念和功能,它还有很多其他特性和件。如果你对某个特定方面有更多的兴趣,请告诉我,我会提供更详细的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值