![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
EFM32JG_FREERTOS
文章平均质量分 94
子歌的宏定义
能力配不上野心,才是烦恼的根源
展开
-
EFM32jg之FreeRTOS(7)-队列、信号量、任务通知
@EFM32JG移植FreeRTOS队列-Queue_t**作用:**队列是为了任务与任务、任务与中断之间的通信而准备的,可以在任务与任务、任务与中断之间传递消息,队列中可以存储有限的、大小固定的数据项目。**储存机制:**使用先入先出缓冲机制,也就是往队列发送数据的时候(也叫入队)永远都是发送到队列的尾部,而从队列提取数据的时候(也叫出队)是从队列的头部提取的。使用的是值传递,切记。**阻塞:**当队列为空时会导致出队阻塞,当队列为满时会导致入队阻塞。队列创建:QueueHandle_t xQ原创 2021-05-20 22:53:58 · 236 阅读 · 0 评论 -
EFM32jg之FreeRTOS(6)-低功耗处理、空闲任务
@EFM32JG移植FreeRTOS低功耗TicklessFreeRTOS 提供了一个叫做 Tickless 的低功耗模式,此模式下需要解决两个问题:1)低功耗下系统滴答计数关闭,则开启低功耗定时器继续计数保证系统节拍2)获得下一个任务要唤醒的时间,开启定时器去在中断唤醒它。在EFM32中,其已经定义了EM1 EM2 EM3 EM4,所以为了使用该函数,可以在空闲函数的勾子函数进入低功耗,在其他任务执行完后,进入空闲任务,进入低功耗模式。再利用事件去触发唤醒,切换任务。空闲任务1、保证系统中至原创 2020-12-10 22:00:29 · 328 阅读 · 0 评论 -
EFM32jg之FreeRTOS(5)-任务调度、创建、切换
@EFM32JG移植FreeRTOS1、任务调度器1)创建空闲任务,优先级为0,表示最低优先级,在无其他高优先级任务的情况下,调用此任务,若打开configUSE_IDLE_HOOK,则可以再空闲任务中增加自己想要执行的代码,定义勾子函数void vApplicationIdleHook( void )。2)变量 xSchedulerRunning 设置为 pdTRUE,表示调度器开始运行。3)设置 PendSV、滴答定时器 的中断优先级,为最低优先级。所以若为事件调度,则必须关闭滴答定时器: Sy原创 2020-12-09 22:44:22 · 288 阅读 · 0 评论 -
EFM32jg之FreeRTOS(4)-列表
@EFM32JG移植FreeRTOS1、列表和列表项1)列表和链表类似,链表如下图,头指针指向链表的第一个节点,然后第一个节点中的指针指向下一个节点,然后依次指到最后一个节点,这样就构成了一条链表,列表项类似双链表。列表:列表项:2、列表项的应用任务创建时,会返回任务句柄,也就是任务控制块,其中两个成员变量: StateListItem 和 xEventListItem,状态列表和事件列表这两个成员变量都是列表项。创建任务时初始化列表项,列表项的插入根据 xItemValue 的值按照原创 2020-12-07 21:47:35 · 92 阅读 · 0 评论 -
EFM32jg之FreeRTOS(3)-中断、任务相关
@EFM32JG移植FreeRTOS1、中断管理Cotex-M3 和 M4 的 NVIC 最多支持 240 个 IRQ(中断请求)、 1 个不可屏蔽中断(NMI)、 1 个Systick(滴答定时器)定时器中断和多个系统异常。由于EFM32JG1B200F128GM48有三位来表达优先级,如下,所以优先级组最多分为四组...原创 2020-12-07 20:40:05 · 255 阅读 · 0 评论 -
EFM32jg之FreeRTOS(1)-移植
[EFM32JG移植FreeRTOS] -移植原创 2019-06-18 21:06:53 · 404 阅读 · 0 评论 -
EFM32jg之FreeRTOS(2)-任务试运行
@EFM32JG移植FreeRTOSEFM32jg之FreeRTOS(2)测试任务原创 2019-06-21 22:02:18 · 463 阅读 · 1 评论